转载请注明出处:http://blog.csdn.net/bbld_/article/details/40400519
翻译自:http://developer.android.com/training/material/theme.html
新的material主题提供了:
l 可以让你设置调色板的系统控件。
l 为控件(设计的)触摸反馈动画。
l Activity过渡动画
你可以根据调色板,控制你定制的material主题。你也可以调整标题栏(Action Bar),并使用主题属性的状态栏,如图三。
提供的系统控件有了全新的设计和触摸反馈动画。你可以在app中自定义调色板,触摸反馈的动画,和activity的过渡动画。
Material主题定义为如下:
l @android:style/Theme.Material (dark version)
l @android:style/Theme.Material.Light (light version)
l @android:style/Theme.Material.Light.DarkActionBar
更多可使用的material样式,请参阅R.style的API参考。
图一:dark material theme 图二:light material theme
注意:这个material主题只有在Android 5.0(API级别21)以上才可用。在v7支持库中提供了一些控件的material主题样式和调色板的兼容支持,要了解更多信息,请参阅Maintaining Compatibility(保持兼容性)。
自定义调色板
要定义主题的基础颜色去适应你的(app设计)品牌,定义你自己的颜色在(material)主题中使用这个颜色属性:
<resources>
<!-- inherit from the material theme -->
<style name="AppTheme"parent="android:Theme.Material">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<itemname="android:colorPrimary">@color/primary</item>
<!-- darker variant for thestatus bar and contextual app bars -->
<itemname="android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls likecheckboxes and text fields -->
<itemname="android:colorAccent">@color/accent</item>
</style>
</resources>
自定义状态栏
使用该material主题,你可以轻松地自定义状态栏,你也可以指定一个颜色基调去适应你的(app设计)品牌并 提供足够的对比度去显示白色的状态栏图标。要自定义状态栏的颜色,你可以在继承了material主题后使用android:statusBarColor属性。默认情况下android:statusBarColor属性的值是android:colorPrimaryDark。
你也可以自己定义状态栏的表现形式。例如,如果你想在一张照片之上显示透明的状态栏,用一种微妙的深色渐变确保白色状态图标是可见的。要做到这点,(应该)把android:statusBarColor属性设置为@android:color/transparent(透明),同时根据需要调整窗口的标识。你也可以使用Window.setStatusBarColor()方法用于动画或者褪色(fading)。
图三:自定义material主题
注意:状态栏应该总是跟工具栏有一个明显的界定,除非你在这里展示了边缘到边缘之间丰富的图像或者媒体内容,(或者你)使用了渐变确保了图标仍然可见的情况下。
主题的个人建议
在XML布局里的元素也可以定义android:theme属性,该属性是引用主题资源。这个属性修改的主题元素和任何的子元素是用于在一个特别的接口中改变主题颜色调色板。
Demo演示效果:
Demo源码下载地址:http://download.csdn.net/detail/bbld_/8073913