Android开发UI之淡化系统状态栏
来源:互联网 发布:企业出纳工作流程 知乎 编辑:程序博客网 时间:2024/05/17 12:02
Android开发UI之淡化系统状态栏
前言
在Android 4.0(API level 14)与更高的的系统版本上淡化系统栏(System bar,状态栏与导航栏)。
Note:早期版本的Android没有提供一个自带的方法来淡化系统栏。
当你使用这个方法的时候,内容区域并不会发生大小的变化,只是系统栏的图标会收起来。一旦用户触摸状态栏或者是导航栏的时候,这两个系统栏就又都会完全显示(无透明度)。这种方法的优势是系统栏仍然可见,但是它们的细节被隐藏掉了,因此可以在不牺牲快捷访问系统栏的情况下创建一个沉浸式的体验。
我们将要学会两点:
- 1.淡化状态栏和导航栏
- 2.显示状态栏和导航栏
淡化状态栏和导航栏
如果要淡化状态和通知栏,在版本为4.0以上的Android系统上,你可以像如下使用SYSTEM_UI_FLAG_LOW_PROFILE这个标签.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE; decorView.setSystemUiVisibility(uiOptions); }
一旦用户触摸到了状态栏或者是系统栏,这个标签就会被清除,使系统栏重新显现(无透明度)。在标签被清除的情况下,如果你想重新淡化系统栏就必须重新设定这个标签。
上图是一个展示图片的小demo,界面的系统栏都已被淡化(需要注意的是图库应用完全隐藏状态栏,而不是淡化它);注意导航栏(图片的右侧)上变暗的白色的小点,他们代表了被隐藏的导航操作。-_-!!好吧,的确有点看不清,但是我拿生命保证的确是有的,不信可以自己亲自试一试。
当我们触摸那淡化的小白点或者是下拉状态栏,这时,在状态栏中,我们又会看见那些图标了,如下图所示:
显示状态栏与导航栏
如果你想动态的清除显示标签,你可以使用setSystemUiVisibility()方法:
View decorView = getWindow().getDecorView();// Calling setSystemUiVisibility() with a value of 0 clears// all flags.decorView.setSystemUiVisibility(0);
0 0
- Android开发UI之淡化系统状态栏
- Android开发UI之隐藏系统状态栏
- Android 系统UI状态栏设置
- Android开发UI之响应系统UI变化
- Android开发之UI
- iPhone开发之隐藏系统状态栏
- iPhone开发之隐藏系统状态栏
- iOS开发之如何隐藏系统状态栏
- Android开发-------设置系统状态栏颜色
- Android开发:屏蔽,显示系统下拉状态栏
- Android UI之沉浸式状态栏Translucent System Bar
- Android UI体验之全屏沉浸式透明状态栏效果
- Android UI体验之全屏沉浸式透明状态栏效果
- Android UI 之自定义标题栏 + 沉浸式状态栏
- Android UI体验之全屏沉浸式透明状态栏样式
- android开发之向状态栏发送通知
- Android开发之--沉浸式状态栏
- Android开发之沉浸式状态栏
- 【数据结构】用栈实现括号匹配的检验
- emac_set_mac_addr
- POJ 百炼 保研机试 4015:邮箱验证
- 关于 音频播放器 MediaRecorder(10402): start failed: -22的问题
- AndroidManifest 中original-package标签
- Android开发UI之淡化系统状态栏
- 用Theano学习Deep Learning(三):卷积神经网络
- MAC系统安装MySql
- SDWebImage详解
- POJ 百炼 保研机试 2713:肿瘤面积
- hybris 5.7下载安装教程
- Mysql学习篇之---四种Blob类型
- 黑马程序员——多态
- 网格部件如何实现列内容的自动换行