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——带深色工具栏的浅色主题

 

posted @ 2017-04-16 00:47  HeLing_CC  阅读(58)  评论(0)    收藏  举报