[圖片上傳中。畏腕。孵构。(1)]# 前言
Android沉浸式與全屏是不一樣的兩種主題瘤旨,接下來(lái)我們看看吧
Android實(shí)現(xiàn)全屏
通過(guò)主題屬性來(lái)實(shí)現(xiàn)
<style name="FullScreenTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:background">#ff00beb4</item>
</style>
在AndroidManifest.xml中使用
<activity android:name=".TestActivity"
android:theme="@style/FullScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
使用全屏的主題
<activity android:name=".TestActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
或者
<activity android:name=".TestActivity"
android:theme="@android:style/Theme.Material.NoActionBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
java代碼中設(shè)置屬性
requestWindowFeature(Window.FEATURE_NO_TITLE);//這行代碼一定要在setContentView之前榨崩,不然會(huì)閃退
setContentView(R.layout.activity_test);
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
效果圖
全屏效果圖
Android實(shí)現(xiàn)沉浸式
半沉浸式
<style name="ImmersionTheme">
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">#ff00beb4</item>
</style>
使用:
<activity android:name=".TestActivity"
android:theme="@style/ImmersionTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
半沉浸式效果圖
半沉浸式5.1
這不是好好的嗎谴垫?但這是5.1的系統(tǒng),當(dāng)切換到6.0以后的系統(tǒng)的時(shí)候
半沉浸式6.0.png
導(dǎo)航欄的陰影是不是很明顯呢母蛛。翩剪。
全沉浸式6.0
Window window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
加上這段代碼就可以了,效果如圖
沉浸式