这篇文章是官方文档的翻译和笔记。对应于官方文档的develop--API Guides--User Interface--Styles and Themes
文章内容:
0. 样式和主题
1. 定义样式
1.1 定义样式的步骤
1.2 继承
1.3 多层次继承
1.4 样式属性
2. 为UI使用样式和主题
2.1 为单个视图使用样式
2.2 为Activity或应用程序使用主题
2.3 根据不同平台版本选择主题
3. 使用平台的样式和主题
0. 样式和主题(Styles and Themes)
样式(style)是用来指定视图或窗口的外观和格式的一组属性集合。样式可以用来指定高度、填充、字体大小、背景颜色等等。样式在XML资源文件中定义,和指定布局的XML文件是分开的。
Android中的样式和网页设计中的CSS(级联样式表)践行同样的哲学:将设计和内容分开。
例如,你可以把下面这个布局XML
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#00FF00"
android:typeface="monospace"
android:text="@string/hello" />
变成下面这样:
<TextView
style="@style/CodeFont"
android:text="@string/hello" />
所有和样式相关的属性都从布局文件中移动到了一个名为CodeFont的样式定义中。CodeFont样式的定义会在下文给出。
主题(theme)是应用到整个activity或者应用程序的样式。而不是像上面的例子一样只应用到单个视图。当一个样式变成主题后,Activity或应用程序中的所有视图都将应用这个样式中它所支持的属性。例如,你可以将上面例子中的GodeFont样式作为一个activity的主题,然后这个Activity中所有的文字都将变成monospace字体。
1. 定义样式(Defining Styles)
1.1 创建样式的步骤:
1.在工程的res/values目录下创建一个XML文件。这个XML文件的根节点必须是<resources>。
2.为每一个你要创建的样式创建一个<style>元素。并且用来识别每个<style>的name属性的值必须是独一无二的。
3.为样式的每一个属性创建一个<item>元素,每个<item>都必须有一个name来表示样式属性,一个和name对应的值。这个值可以是关键字字符串、十六进制表示的颜色、对另一个资源类型的引用,或者其他值