根據網絡上的說法,安卓UI發生兩次大的改動。一次是android 3.0發佈,UI開發支持了Fragment,主要增長了大屏幕顯示的支持,這個版本就開始支持Holo Theme,因爲android 3.X的設備佔有率也不高,這一次的改變沒有引發大的關注;再一次的改變就是Android 4.0,也就是一般所說的ICS(Ice Cream Sandwich),這個於2011年末發佈的Android系統,同時也發佈了指導性的應用設計規範《Android Design》有了設計規範的指導,就有了更多應用採用了Holo Theme,尤爲國外的應用。Holo Theme的主要特色是輕快的顏色、適當的陰影、卡片化佈局、方角矩形。html
主題和風格的自定義都放在res/values/styles.xml文件中。xml文件部分以下:android
<resources xmlns:android="http://schemas.android.com/apk/res/android">web
<--主題-->網絡
<style name="AppBaseTheme" parent="android:Theme.Light">app
</style>佈局
<--風格-->字體
<style name="progress_wait" parent="@android :style/Widget.ProgressBar.Horizontal">this
<item name="android:indeterminateOnly">true</item>spa
<item name="android:indeterminateDrawable">@anim/progress_wait</item>.net
</style>
</resource>
A theme is a style applied to an entire Activity or application, rather than an individual View. 最簡單淺顯的比喻就是,你在使用Android Studio的時候,有好幾個主題能夠選,其中一個是Windows,一個是Intellij,調整後整個界面的主題就變了。這裏的主題,相似於安卓裏面的主題。
例如,在用Eclipse新建安卓工程的時候,主題選項以下圖,目前安卓的風格也就以下幾種:
圖一 Eclipse新建工程師供選擇的主題
主題效果以下(圖片來自網絡),從左到有的效果,分別是:Dark,Light,Light with Dark Action Bar:
圖二 各類風格效果圖
主題放置的位置在<application>標籤或者是<activity>標籤,如:
<application android:theme="@style/AppTheme"></application>
<activity android:theme="@style/AppTheme"></activity>
參見官方文檔。鄙人稍做翻譯。
A style is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.
風格就是用於指定視圖或窗口的風格和格式的集合。風格能夠指定的屬性有以下,但不限於如下,高度,內間距,字體顏色,字體大小,背景色,等等。一組風格定義在xml文件中,不一樣於用於佈局的xml文件。
Styles in Android share a similar philosophy to cascading stylesheets in web design—they allow you to separate the design from the content.
安卓中的風格相似於CSS的共用思想:設計和內容分離。
For example, by using a style, you can take this layout XML:(你能夠經過以下方式使用風格)
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#00FF00"
android:typeface="monospace"
android:text="@string/hello" />
And turn it into this:(也能夠轉變成以下)
<TextView
style="@style/CodeFont"
android:text="@string/hello" />
All of the attributes related to style have been removed from the layout XML and put into a style definition called CodeFont, which is then applied with the style attribute.
全部與風格相關的屬性所有從佈局文件中移除,定義到風格資源文件寫,並冠名CodeFont,這就是咱們稍後要應用到的風格屬性。