Android 全屏與沉浸式

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

Android實現全屏

通過主題屬性來實現

<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實現沉浸式

半沉浸式

<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的系統,當切換到6.0以后的系統的時候

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

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

沉浸式
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容