Android应用程序中,为了美观或者特殊需要,有时需要全屏,这里介绍一些方法,
下面的方法是Activity刚开始创建,就设置为全屏,先看示例代码,再看看代码的作用。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
setContentView(R.layout.activity_main);
}
1. 保存屏幕常亮
调用下面的方法,是为了保持屏幕常亮
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
2. 全屏的参数设置
2.1 隐藏状态栏
SYSTEM_UI_FLAG_FULLSCREEN:状态栏消失,状态栏的layout还在;
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:状态栏消失,状态栏的layout也不再占用屏幕空间;
2.2 隐藏导航键
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:导航键消失不见,但是导航键的位置依然占用原来的屏幕空间;
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:导航键消失不见,同时导航键的layout也不再占用屏幕空间;
3.3 隐藏程序的标题栏,下面2个参数,可以使标题栏消失
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
通过上面的设置,程序启动后,就可以看到程序全屏了。但是当从屏幕最上方下滑屏幕,或者从屏幕最下方上滑屏幕,状态栏和导航键还是会出现,不知道有没有办法在这种情况下也不让状态栏和导航键出来。