很早前就看到Android SDK中關(guān)于Applying Styles and
Themes的介紹與說明,,今天總算有時(shí)間來體驗(yàn)下了,。和web中的CSS一樣,,Android也可以為界面定義全局,、公用的Style。Styles和
Themes都是資源,,存放在res/values文件夾下,。
首先,什么是Style,,什么是Theme,?
- Style:是一個(gè)包含一種或者多種格式化屬性的集合,我們可以將其用為一個(gè)單位用在布局XML單個(gè)元素當(dāng)中,。比如,,我們可以定義一種風(fēng)格來定義文本的字號(hào)大小和顏色,然后將其用在View元素的一個(gè)特定的實(shí)例,。
- Theme:是一個(gè)包含一種或者多種格式化屬性的集合,,我們可以將其為一個(gè)單位用在應(yīng)用中所有的Activity當(dāng)中或者應(yīng)用中的某個(gè)
Activity當(dāng) 中。比如,,我們可以定義一個(gè)Theme,,它為window frame和panel
的前景和背景定義了一組顏色,并為菜單定義可文字的大小和顏色屬性,,可以將這個(gè)Theme應(yīng)用在你程序當(dāng)中所有的Activity里,。
其次,定義Styles和Themes資源的XML文檔的結(jié)構(gòu)
對(duì)每一個(gè)Styles和Themes,,給<style>元素增加一個(gè)全局唯一的名字,也可以選擇增加一個(gè)父類屬性,。在后邊我們可以用這
個(gè)名字來應(yīng)用風(fēng)格,,而父類屬性標(biāo)識(shí)了當(dāng)前風(fēng)格是繼承于哪個(gè)風(fēng)格。在<style>元素內(nèi)部,,申明一個(gè)或者多個(gè)<item>,,每一
個(gè)<item>定義了一個(gè)名字屬性,并且在元素內(nèi)部定義了這個(gè)風(fēng)格的值,。
然后,,看個(gè)自定義的Styles的實(shí)例
- 在res/values 目錄下新建一個(gè)名叫style.xml的文件。
- 在style.xml定義內(nèi)容如下:
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<style name=”DavidStyleText1″>
<item name=”android:textSize”>18sp</item>
<item name=”android:textColor”>#EC9237</item>
</style>
<style name=”DavidStyleText2″>
<item name=”android:textSize”>14sp</item>
<item name=”android:textColor”>#FF7F7C</item>
<item name=”android:fromAlpha”>0.0</item>
<item name=”android:toAlpha”>0.0</item>
</style>
</resources>
上面樣式的定義,,從字面意思就可以了解其功能了,,下面看看如何應(yīng)用它吧:
<!– 應(yīng)用樣式1的TextView –>
<TextView
style=”@style/DavidStyleText1″
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:gravity=”center_vertical|center_horizontal”
android:text=”moandroid”/>
<!– 應(yīng)用樣式2的TextView –>
<TextView
style=”@style/DavidStyleText2″
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:gravity=”center_vertical|center_horizontal”
android:text=”www.”
android:autoLink=”all”/>
現(xiàn)在這個(gè)EditText組件的所表現(xiàn)出來的風(fēng)格就為我們?cè)谏线叺腦ML文件中所定義的那樣,如下:
看了新的界面是不是感覺漂亮多了,,這也就是Styles的魅力吧,。需要補(bǔ)充說明的是:?jiǎn)螕舫溄?,還可以打開網(wǎng)頁如下:
這是如何實(shí)現(xiàn)的了?TextView.setTextView不支持HTML TAG的輸出,,所以即便寫成這樣:
mTextView01.setText(“<a
href=\”http://www./\”>mo-android|享受Android帶給我們的新體驗(yàn)<
/a>”);實(shí)際輸出時(shí),,也就是純文本而已,并不會(huì)作HTML TAG的轉(zhuǎn)換,。但若撇開HTML
TAG之外(如“<”開頭的標(biāo)記),,在TextView里加上了android:autoLink=”all”,那么正文中若有網(wǎng)址
(http://),,是可以被顯示的,。
總結(jié)說明
Style的使用相當(dāng)簡(jiǎn)單,卻很好的改善了界面的效果,,不信你就按照上面介紹的步驟,,自己去試試看吧!
相關(guān)文章