設定應用全屏的幾種方式
阿新 • • 發佈:2021-06-28
1. 去掉標題欄+全屏顯示+導航欄半透明
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { // todo 去掉標題欄 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); // todo 全屏顯示以及導航欄半透明 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } @Override protected void onDestroy() { super.onDestroy(); // todo 還原設定 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } }
2. 去掉標題欄+全屏顯示+設定導航欄顏色
public class MainActivity extends AppCompatActivity { private int mNavigationBarColor; @Override protected void onCreate(Bundle savedInstanceState) { // todo 去掉標題欄 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); // todo 全屏顯示 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); // todo 設定導航欄顏色 mNavigationBarColor = getWindow().getNavigationBarColor(); getWindow().setNavigationBarColor(Color.TRANSPARENT); } @Override protected void onDestroy() { super.onDestroy(); // todo 還原設定 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setNavigationBarColor(mNavigationBarColor); } }
3. 對DecorView進行設定
public class MainActivity extends AppCompatActivity { private int mSystemUiVisibility; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View decorView = getWindow().getDecorView(); // todo 獲取當前的ui狀態 mSystemUiVisibility = decorView.getSystemUiVisibility(); // todo 全屏 decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } @Override protected void onDestroy() { super.onDestroy(); // todo 還原ui狀態 View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(mSystemUiVisibility); } }
4. 清單檔案設定主題
- 在/res/values/styles.xml中自定義全屏主題
<style name="FullScreen" parent="Theme.AppCompat.Light.NoActionBar">
<!--視窗全屏-->
<item name="android:windowFullscreen">true</item>
<!--導航欄半透明-->
<item name="android:windowTranslucentNavigation">true</item>
</style>
- 在清單檔案中設定主題
<activity
android:name=".MainActivity"
android:theme="@style/FullScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>