getwindow
Window的addFlags(int flags)
flags-要设置的标志位
setFlags(int flags, int mask)
flags-新窗口标志(见窗口。LayoutParams)。
mask-哪一位窗口的标志位来修改。
//设置窗体全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置窗体始终点亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//设置窗体背景模糊
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
//添加一体化状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//添加透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//隐藏底部虚拟键并且全屏
if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
View v = this.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
} else if (Build.VERSION.SDK_INT >= 19) {
//for new api versions.
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
参考:https://blog.csdn.net/sdvch/article/details/44209959
1.View.SYSTEM_UI_FLAG_VISIBLE :状态栏和Activity共存,Activity不全屏显示。也就是应用平常的显示画面
2.View.SYSTEM_UI_FLAG_FULLSCREEN :Activity全屏显示,隐藏系统状态栏,如果设置了Window.FEATURE_ACTION_BAR_OVERLY同时隐藏Actionbar
3. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN :Activity全屏显示,但是状态栏不会被覆盖掉,而是正常显示,只是Activity顶端布 局会被覆盖住
4.View.INVISIBLE : Activity全屏显示,隐藏状态栏
5.View.SYSTEM_UI_FLAG_LOW_PROFILE //夜间模式,系统控件颜色会变暗
6.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION //隐藏虚拟按键,点击又会重新出现,这个会隐藏屏幕上的所有系统控件
7.SYSTEM_UI_FLAG_IMMERSIVE_STICKY //提供了沉浸式的体验
8.SYSTEM_UI_FLAG_LAYOUT_STABLE //在隐藏显示系统控件的过程中不会来移动我们的控件