使用 Style
Android 中的View、Window等控件通常会定义一些属性来表示各自的外观、格式等信息,例如一个TextView中的字体大小、字体颜色,一个Dialog的窗口类型、窗口大小等。而Style就是设置到一个View或者Window上的一系列属性的集合。我们可以将TextView的字体样式、字体颜色、字体大小等属性定义成一个Style,所有使用这个Style的TextView将会有相同的字体样式、字体颜色、字体大小。
Style一般是以xml文件的形式保存在资源目录中的,并且是与布局资源layout文件分离开来的,这样我们就可以将一套Style与使用这套Style的控件分离开来,进行独立维护,而且还可以将同一套Style复用到多个控件上,方便移植。从这一点上看Style有点类似于网页设计中的CSS,允许开发者将设计与内容分离。
下面是layout中一个TextView的定义,其中的typeface
、textColor
、textSize
几个属性是直接定义的:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="monospace"
android:textColor="#ffff00ff"
android:textSize="24sp"
android:text="@string/hello_world"/>
如果我们将这几个属性分离出来,定义成一个Style,就会是下面的样子:
Style:
<style name="CodeFont">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:typeface">monospace</item>
<item name="android:textColor">#ffff00ff</item>
<item name="android:textSize">24sp</item>
</style>
Layout:
<TextView
style="@style/CodeFont"
android:text="@string/hello_world" />
这样CodeFont
这个Style还可以应用到其他的Tex