編輯:高級開發
可以指定這些屬性在布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:capitalize="characters" android:textColor="#00FF00" android:typeface="monospace" android:text="@string/hello_world" /> </LinearLayout>
不過這樣一來,我們需要定義的樣式屬性,每個屬性分別用於源代碼維護的角度來看這是非常不好的。因此,樣式定義應該放在單獨的文件,如下解釋。
樣式可以定義在一個單獨的XML指定布局的XML資源文件。此XML文件位於 res/values/ 項目目錄,強制性的樣式文件中<resources>作為根節點,XML文件名稱是任意,但它必須使用.xml擴展名。
可以定義每個文件中使用的多種樣式<style>標簽,但要使用唯一的名稱來標識此樣式。 Android 樣式屬性設置使用的<item>標簽,如下圖所示:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomFontStyle"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:capitalize">characters</item> <item name="android:typeface">monospace</item> <item name="android:textSize">12pt</item> <item name="android:textColor">#00FF00</item>/> </style> </resources>
這裡<item>裡邊的值可以是一個關鍵字串,十六進制的顏色,參考到另一個資源類型,或其他的值取決於樣式屬性。
樣式定義之後,就可以用它在XML布局文件使用樣式屬性,如下所示:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text_id" style="@style/CustomFontStyle" android:text="@string/hello_world" /> </LinearLayout>
要理解這個概念涉及到Android 的樣式,可以檢查 樣式實例。
Android支持級聯樣式表在網頁設計風格非常類似繼承這種方式。可以使用這個繼承現有的樣式屬性,然後定義想要更改或添加屬性。
其操作簡單,創建一個新的的樣式繼承LargeFont上述CustomFontStyle風格定義,但字體的大小變大,可以編寫這樣的新的樣式:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomFontStyle.LargeFont"> <item name="android:textSize">20ps</item> </style> </resources>
@style/CustomFontStyle.LargeFont 的XML布局文件,可以參考這個新的樣式。可以繼續秉承這樣多次,只要願意,周期通過鏈接名稱。例如,可以擴展FontStyle.LargeFont的是紅色的,如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomFontStyle.LargeFont.Red"> <item name="android:textColor">#FF0000</item>/> </style> </resources>
繼承這種技術通過鏈接在一起的名字僅適用於自己的資源定義的樣式。不能繼承:Android內置樣式的這種方式。要引用一個Android內置風格,如TextAppearance,必須使用父屬性,如下所示:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomFontStyle" parent="@android:style/TextAppearance"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:capitalize">characters</item> <item name="android:typeface">monospace</item> <item name="android:textSize">12pt</item> <item name="android:textColor">#00FF00</item>/> </style> </resources>
希望能夠理解樣式的概念,現在讓我們去了解什麼是主題。主題是什麼,主題只不過是要Android應用到整個活動或應用程序中統一樣式,而不是一個單獨的視圖樣式。
因此,當一個樣式應用為主題,將適用於每一個活動或應用程序視圖它支持每個樣式屬性。例如,可以應用一個主題Activity 活動的的同一CustomFontStyle風格,然後內部的所有文本,活動都會有綠色環保等寬字體。
要設置應用程序的所有活動的主題,打開AndroidManifest.xml文件,編輯<application>標簽包含了android:theme 屬性的風格名稱。例如:
<application android:theme="@style/CustomFontStyle">
但是,如果想有一個主題,只是在應用程序的一個Activity 活動,然後添加android:theme屬性到<activity>標簽。例如:
<activity android:theme="@style/CustomFontStyle">
有一些由Android定義的默認主題,可以直接使用或繼承父屬性如下:
<style name="CustomTheme" parent="android:Theme.Light"> ... </style>
要理解這個概念,有關Android的主題,可以查看 主題示例。
Android平台提供了一個大集合,可以在應用程序中使用的風格和主題。可以在R.style類的參考找到所有可用的樣式。要使用這裡列出的風格,在一個樣式名替換所有下劃線。例如,可以應用Theme_NoTitleBar主題使用如“@android:style/Theme.NoTitleBar”。
android系統平台吸引OEM和運營商的一大特點就是OHA聯盟的許可協議,谷歌借助建立標准化、開放式的移動電話軟件平台,在移動產業內形成一個開放式的生態系統。而且不存
Launcher不是android特有的,更不是智能手機特有的。很多設備都具有類似Launcher這種東西。就算是Windows,Linux也是有的。android中的
Google推出的android應用手機通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作伙伴關系,但同顯而易見的,是手機具有便攜性,24小時隨身相伴性和及
android 3.0是谷歌用來進軍平板市場的利器,但在iPad發布會上,由於應用稀少發展後勁不足而被史蒂夫·喬布斯(Steve Paul Jobs)特地提出來嘲笑。i