Android AdvancedImmersiveMode Sample
在 Android 4.4中添加l 沉浸式模式,改善了"隐藏全屏幕"和"隐藏导航栏"的模式,让用户通过bar切入和切出。此示例使用户可以通过看到它如何与其他 UI 标志与全屏应用程序相关的一些交互试验身临其境的模式。
感觉这样写的话,博文有点太浪费时间了,从本篇文章开始,只说和样例有关的函数。
本例主要是上面的这些按钮的设置
我们就分别说着这个几个按钮说说有什么作用,
首先上原图:
********************************************************************************************
第一个Enable Low Profile Mode = View.SYSTEM_UI_FLAG_LOW_PROFILE
我就不翻译了,机器翻译的也挺好的:
视图已请求系统 UI 进入不显眼的"低调"模式。
这是用于游戏、 图书、 视频播放器或任何其他"身临其境"的应用程序通常系统镶边被认为太让人分心。
低姿态模式、 状态栏和/或导航图标可能会变暗。
如图:
很明显的,状态栏和向导栏都变得暗淡了
********************************************************************************************
第二个Hide Navigation bar = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
这个就不说那么复杂了,隐藏向导栏
如图:
********************************************************************************************
第三个Hide Status Bar = View.SYSTEM_UI_FLAG_FULLSCREEN
隐藏状态栏,看字面意思还以为要全屏了...
如图:
第四个Enable Immersive Mode = View.SYSTEM_UI_FLAG_IMMERSIVE
说实话,我觉得这个函数用了跟没用一个效果,但是还是解释一下,
就是说当你想要隐藏向导栏(就是设置了 SYSTEM_UI_FLAG_HIDE_NAVIGATION)的时候,但是视图仍然还想要互动时,就需要设置这个(SYSTEM_UI_FLAG_IMMERSIVE),如果不设置此标志,SYSTEM_UI_FLAG_HIDE_NAVIGATION 将清除任何用户交互系统的力量。【但是我发现好像没有。】
由于这个标志(SYSTEM_UI_FLAG_IMMERSIVE)是 SYSTEM_UI_FLAG_HIDE_NAVIGATION 修饰符,所以需要两者组合使用。
********************************************************************************************
第五个Enable Immersive Mode (Sticky) = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
这个标志和第四个差不多,就是多了一个隐藏状态栏SYSTEM_UI_FLAG_FULLSCREEN的时候,也可以和第四个产生一样的效果。
********************************************************************************************
下面两个button就是上面的组合而已,也不多说了
具体使用:
int uiOptions = flagsView.getSystemUiVisibility();
uiOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
uiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE;
uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
flagsView.setSystemUiVisibility(uiOptions);
其中flagsView只是一个具体的对象,也可以是其他的view。
上面的&= ~是不要这个标识,|=是要这个标识,就不说什么与或非了。