样式是给View或Window指定外观和格式的属性集合。样式能够指定如高、边距、字体颜色、字体尺寸、背景颜色等属性。样式被定义在一个与布局XML文件分开的XML资源文件中。

Android中的样式与Web设计中的层叠式样表类似,允许与内容分开设计。

例如,通过使用样式,可以把下面这个布局XML转换成引用样式的声明:

不使用样式属性:


android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:textColor="#00FF00"
   android:typeface="monospace"
   android:text="@string/hello" />

使用样式属性:


style="@style/CodeFont"
   android:text="@string/hello" />

上例中所有的样式相关的属性都被从布局XML中删除了,并且把这些样式放到了一个叫做CodeFont的XML样式定义中,然后把它设置给style属性。

主题是应用与整个Activity或应用程序的样式,而不是一个独立的View对象。当一个样式被用作主题时,Activity或应用程序中的每个View对象都会使用它所支持的每个样式属性。例如,把相同的CodeFont样式用作一个Activity的主题,那么这个Activity内的所有文本都会使绿色等宽字体。

定义样式

要创建一个样式集,就要把一个XML文件保存项目目录的res/values目录中。XML文件的名字是随意的,但是必须使用.xml扩展名,并且保存在res/values文件夹中。

这个XML文件的根节点必须是

对于要创建的每个样式,都要在这个XML文件中添加一个元素,并永name属性唯一的标识这个样式(这个属性是必须的),然后给样式的每个属性添加一个元素,这个元素的name属性用于声明样式的属性名,属性值被放在一组之间。给元素的值能够是一个字符串、十六进制的颜色、另一个资源类型的引用、或者依赖样式属性的其他值,下例是一个单一样式的示例文件: