Android 全屏與沉浸式

[圖片上傳中。。。(1)]# 前言
Android沉浸式與全屏是不一樣的兩種主題,接下來我們看看吧

Android實現(xiàn)全屏

通過主題屬性來實現(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代碼中設置屬性

requestWindowFeature(Window.FEATURE_NO_TITLE);//這行代碼一定要在setContentView之前,不然會閃退
setContentView(R.layout.activity_test);
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

效果圖

全屏效果圖

Android實現(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),當切換到6.0以后的系統(tǒng)的時候

半沉浸式6.0.png

導航欄的陰影是不是很明顯呢。。

全沉浸式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);

加上這段代碼就可以了,效果如圖

沉浸式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容