Android samples API Demos之UI篇3(AdvancedImmersiveMode)沉浸模式

Android AdvancedImmersiveMode Sample

Immersive Mode, added in Android 4.4, improves the "hide full screen" and "hide nav bar" modes by letting users swipe the bars in and out. This sample lets the user experiment with immersive mode by seeing how it interacts with some of the other UI flags related to full-screen apps.
在 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。

上面的&= ~是不要这个标识,|=是要这个标识,就不说什么与或非了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值