沉浸式就是利用系统状态栏,将背景图片延伸至系统状态栏区域内,效果就是和游戏应用画面那样。 仅仅是隐藏状态栏和ActionBar,只是粗暴的隐藏了而已 透明状态栏效果:背景图片延伸,而非隐藏。需要借助其他的UI Flag,且需要判断版本 至此,尚不能称为沉浸式状态栏,只能算是透明状态栏 隐藏系统底部导航栏,需要设置UI FLAG。 结合3种UI Flag,已经和真正的沉浸式很接近了 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN这种UI Flag,会让应用的主体内容延伸进入系统底部导航栏的空间 游戏、视频类应用会用到沉浸式,如爱奇艺、海岛奇兵。 另外在清单文件中将该Activity设置为横屏 此时默认情况下全屏,不显示系统底部导航栏和状态栏。横屏模式下,顶部下拉或右侧下拉,系统底部导航栏和状态栏又会重新显示。点击屏幕或等待一段时间后无操作,就会重新进入沉浸式。 感谢郭婶:https://blog.csdn.net/guolin_blog/article/details/51763825Action1 隐藏状态栏和ActionBar
//获取当前界面的DecorView View decorView = getWindow().getDecorView(); //表示全屏,即隐藏状态栏 int option = View.SYSTEM_UI_FLAG_FULLSCREEN; //设置系统UI元素可见性 decorView.setSystemUiVisibility(option); ActionBar actionBar = getSupportActionBar(); //隐藏ActionBar actionBar.hide();
Action2 透明状态栏
//5.0以上才支持 if (Build.VERSION.SDK_INT>=21){ View decorView = getWindow().getDecorView(); //这两个Flag结合使用,才会让应用的主体内容占据系统状态栏的空间 int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); //将状态栏设置为透明色 getWindow().setStatusBarColor(Color.TRANSPARENT); } ActionBar actionBar = getSupportActionBar(); actionBar.hide();
Action3 隐藏导航栏
缺陷:只要点击屏幕,就会退出该模式 View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; decorView.setSystemUiVisibility(option); ActionBar actionBar = getSupportActionBar(); actionBar.hide();
Action4 综上
//5.0以上才支持 if (Build.VERSION.SDK_INT>=21){ View decorView = getWindow().getDecorView(); //3种Flag结合使用 int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; decorView.setSystemUiVisibility(option); //将状态栏设置为透明色 getWindow().setStatusBarColor(Color.TRANSPARENT); //将系统底部导航栏设置为透明色 getWindow().setNavigationBarColor(Color.TRANSPARENT); } ActionBar actionBar = getSupportActionBar(); actionBar.hide();
最后,真正的沉浸式
在使用沉浸式的Activity中重写onWindowFocusChanged方法,并设置一下UI Flag@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT>=19){ View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(option); } }
<activity android:name=".immersion.ImmersionActivity" android:screenOrientation="landscape"> </activity>
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算