Android全屏与透明状态栏
生活随笔
收集整理的這篇文章主要介紹了
Android全屏与透明状态栏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
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="TranslucentTheme"><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/TranslucentTheme"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter> </activity>復制代碼半透明效果圖
半沉浸式效果圖5.x這不是好好的嗎?但這是5.1的系統,當切換到6.0以后的系統的時候
半沉浸式效果圖6.0透明式6.0
Window window = activity.getWindow(); //這一步最好要做,因為如果這兩個flag沒有清除的話下面沒有生效 window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); //設置布局能夠延伸到狀態欄(StatusBar)和導航欄(NavigationBar)里面 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //設置狀態欄(StatusBar)顏色透明 window.setStatusBarColor(Color.TRANSPARENT); //設置導航欄(NavigationBar)顏色透明 window.setNavigationBarColor(Color.TRANSPARENT);復制代碼加上這段代碼就可以了,效果如圖
全沉浸式關于導航欄SystemUiVisibility
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE//保持系統的穩定性| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隱藏導航欄的布局,但是SYSTEM_UI_FLAG_HIDE_NAVIGATION不設置不會生效| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隱藏號航欄| View.SYSTEM_UI_FLAG_IMMERSIVE//沉浸式,會全屏/*| View.SYSTEM_UI_FLAG_FULLSCREEN//全屏| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN*/| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//粘性沉浸式,下滑和上滑才能顯示狀態欄和導航欄| 0x00200000 |//隱藏導航欄的back鍵0x00400000 |//隱藏導航欄的home鍵0x01000000;//隱藏導航欄的recent鍵 window.getDecorView().setSystemUiVisibility(flags);復制代碼關于fitsSystemWindows
android:fitsSystemWindows=true<!--可以讓你的布局不會頂到狀態欄和導航欄上,但是顏色依然會透過去-->復制代碼總結
以上是生活随笔為你收集整理的Android全屏与透明状态栏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于xampp搭建的个人博客。
- 下一篇: Node.js- sublime搭建no