style是屬性的集合,用來指定view或者window的外觀和版式。style可以指定諸如高度,填充,字體顏色,字體大小,背景顏色等屬性。style定義在與layout文件分開的xml資源文件裏。html
好比可以例如如下使用style:android
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#00FF00" android:typeface="monospace" android:text="@string/hello" />
使用style以後:app
<TextView style="@style/CodeFont" android:text="@string/hello" />所有的style屬性都被從layout xml文件裏移除,而後寫到一個style xml文件裏,命名爲:
CodeFont
。
theme是一種style,運用在所有的activity或者application。ide
在project文件夾res/values/
下,建立一個文件,名字任意,保存style屬性集。xml文件的根節點必須是<resources>
。性能
樣例例如如下:字體
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CodeFont" parent="@android:style/TextAppearance.Medium"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textColor">#00FF00</item> <item name="android:typeface">monospace</item> </style> </resources>
<resources>
的子元素都會被轉換成一個application資源對象。可以經過name來引用。
parent
屬性可選,可以指定爲還有一個style文件的id。
<style>
元素中的parent
屬性可以指定一個style,咱們的定義的style繼承於這個style。可以使用這一屬性繼承已有的style,而僅僅用定義或者改變部分的屬性。ui
<style name="GreenText" parent="@android:style/TextAppearance"> <item name="android:textColor">#00FF00</item> </style>
假設是使用繼承自定義的style,就沒有必要使用parent屬性了。僅僅需要在你的新style的名字前加上已定義的style的名字。樣例例如如下:spa
<style name="CodeFont.Red"> <item name="android:textColor">#FF0000</item> </style>
現在已經知道怎樣定義一個屬性文件了,如下來看看在style文件裏可以定義那些屬性item。查看指定view的屬性的最好的方法就是查看class 參考文檔。比方TextView
所有可利用的屬性都在TextView XML attributes列出來了。code
參考文檔http://developer.android.com/guide/topics/ui/themes.html#PlatformStyles
orm