Android编程权威指南(第二版)第二十章-样式与主题
颜色资源:res/values/colors.xml
<resources>
<color name="red">#F44336</color>
<color name="dark_red">#C3352B</color>
<color name="gray">#607D8B</color>
<color name="soothing_blue">#0083BF</color>
<color name="dark_blue">#005A8A</color>
</resources>
样式资源:res/values/styles.xml
<resources>
<style name="BoxButton">
<item name="android:background">@color/dark_blue</item>
</style>
<style name="StrongBoxButton" parent="@style/BoxButton">
<item name="android:textStyle">bold</item>
</style>
</resources>
//样式支持继承。一个样式能继承并覆盖其他样式的属性。用parent来指定
//使用的样式资源时,style="@style/BoxButton"
主题(一种指定的属性不同于样式的样式):res/values/styles.xml
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<style name="AppTheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/red</item>//工具栏背景
<item name="colorPrimaryDark">@color/dark_red</item>//状态栏的背景
<item name="colorAccent">@color/gray</item>//一般EditText组件的颜色
<item name="android:colorBackground">@color/soothing_blue</item>
</style>
</resources>
在XML中引用具体值时(如颜色值),我们使用@符号。@color/gray指向某个特定资源。
在主题中引用资源时,我们使用?符号。android:background="?attr/colorAccent"
AppCompat库自带三大主题:
Theme.AppCompat——深色主题
Theme.AppCompat.Light——浅色主题
Theme.AppCompat.Light.DarkActionBar——带深色工具栏的浅色主题

浙公网安备 33010602011771号