原文地址:http://android.xsoftlab.net/training/system-ui/index.html
引言
系统条(System Bars)是屏幕上的一块显示区域,专门用来显示通知,设备的通讯状态以及设备的导向。典型的System Bars与APP同时显示在屏幕上。APP展示了具体的内容,比如电影或者照片,这时可以临时性的将System Bars的图标变暗,以便减少不必要的干扰,或者临时性的隐藏System Bars,以便进入一种身临其境的状态。
如果你对Android Design Guide很熟悉,那么应该知道将APP设计为符合标准的Android UI是很重要的一点。在修改System Bars之前,你应当仔细考虑用户所需要的及所期望的,因为这会给用户一种标准的方法来操作设备及查看设备的状态(PS:说白了就是可以很快的上手)。
这节课将会讨论如何在不同的Android版本中变暗或隐藏System Bars来创造身临其境的用户体验,并且保留快速访问System Bars的方法。
使System Bars变暗
这节课将会描述如何使Android 4.0以上的系统的System Bars变暗。Android对早期的版本并没有提供可以使System Bars变暗的方法。
当你使用这项方法时,内容区域并不会重新调整尺寸,但是System Bars上图标在视觉上确实是收回去了。无论用户是点击了状态条区域还是导航条区域,这两个条都会完全显示出来。这种方法的优势在于Bar还在,但是它们的详细信息都被模糊了,因此利用Bar可以很轻松的创建一个没有任何代价损失的身临其境的体验。
使状态导航条变暗
你可以在Android 4.0及以上的版本中通过SYSTEM_UI_FLAG_LOW_PROFILE标志来使状态条及通知条变暗:
// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);
在用户触碰到状态导航条时,这个标志会被清除,这会使状态导航条变亮。一旦这个标志被清除,如果你想再次使导航条变暗的话,还需要重新设置这个标志。
下图展示了导航条变暗后的展示效果(注意这里只是将状态条隐藏了,并不是使它变暗了)。注意导航条(图像的右边)在这里呈浅白色的点:
下图展示了相同的图像,只是系统条这时完全被展示了出来:
使状态导航条变亮
如果你想清除这个标志,你可以这么做:
View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);