一直以来,Android最大的特点之一就是可以定制UI元素,保持个人应用程序的视觉一致性。
随着Android4.4的发布,谷歌最终去除了应用程序运行时系统UI中的高亮蓝(bright holo
blue)效果。这项技术很快将应用于所有的App,但是在你发布下一个版本前,现在就可以利用这项新的半透明系统栏使你的App与众不同。有两种样式可
以操作该系统栏:windowTranslucentStatus 和windowTranslucentNavigation 。
在主题(theme)中设置windowTranslucentStatus 为true 将填充顶部的状态栏区域。(有虚拟按键的设备上)设置windowTranslucentNavigation 为true 将填充底部导航栏的区域。这两种样式默认会把应用的内容放到系统栏下面。如果仅仅想扩展背景样式到系统栏下,设置fitsSystemWindows 为true 会增加视图的Padding值让你的布局恢复正常大小,并且可以把背景扩大。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< resources >
< style name = "AppTheme" parent = "android:Theme.Holo.Light" >
< item name = "android:windowBackground" >@color/green</ item >
< item name = "android:windowTranslucentStatus" >true</ item >
< item name = "android:windowTranslucentNavigation" >true</ item >
< item name = "android:fitsSystemWindows" >true</ item >
< item name = "android:actionBarStyle" >@style/ActionBar.Solid.GreenStyle</ item >
</ style >
< style name = "ActionBar.Solid.GreenStyle" parent = "<a href=" http://www.jobbole.com/members/android/" rel = "nofollow" >@android</ a >:style/Widget.Holo.Light.ActionBar.Solid">
< item name = "android:background" >@color/green_accent</ item >
</ style >
</ resources >
|
下一步要做什么呢?
这就引出了一个重要的关于设计的讨论。可以扩展内容到系统UI并不意味着我们应该这样做。很多情况下,这种风格设计并不合适。如果你把工具栏扩展到状态栏
下,这会是一个很糟糕的设计。对于大多数使用action bar的场景来说,一个浮于背景之上的可见action bar作为整个窗口的背景会很突兀。
当然,也有例外。
Android行为设计方面的几个哥们,用半透明工具栏做了个小例子。这个特殊的例子效果很好,真正强调了占据整个屏幕的内容,而且并没有像全屏和沉浸模式一样让导航显得很混乱,

Jeff Gilfelt已经写了个辅助系统工具栏着色的函数库,
他巧妙地将视图放到系统UI下。如果一些UI内容超出了屏幕的边界,这个库可以轻松的为导航区域着色,除此之外,还可以轻松地把工具栏和系统UI结合起
来。即使你不打算着色系统工具栏,看一看Jeff的代码也是相当值得的,可以学习如何手动获取状态栏、工具栏和导航区域的高度。
这几个新的样式可以让你很好地扩展自己的应用视图,比正常的窗口都要大。只需在主题中增加几行代码就可以轻松实现,所以我鼓励大家都尝试一下。
原文链接: doubleencore 翻译: 伯乐在线 - 黄瓜
译文链接: http://blog.jobbole.com/71207/ |