Styles and Themes

1.概述

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

2.建立style

在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。

3.繼承

<style>元素中的parent屬性可以指定一個style,咱們的定義的style繼承於這個style。可以使用這一屬性繼承已有的style,而僅僅用定義或者改變部分的屬性。ui

    <style name="GreenText" parent="@android:style/TextAppearance">
        <item name="android:textColor">#00FF00</item>
    </style>

比方上面樣例,繼承了TextAppearance,改動了textColor屬性。

假設是使用繼承自定義的style,就沒有必要使用parent屬性了。僅僅需要在你的新style的名字前加上已定義的style的名字。樣例例如如下:spa

    <style name="CodeFont.Red">
        <item name="android:textColor">#FF0000</item>
    </style>

4.style的屬性值

現在已經知道怎樣定義一個屬性文件了,如下來看看在style文件裏可以定義那些屬性item。查看指定view的屬性的最好的方法就是查看class 參考文檔。比方TextView所有可利用的屬性都在TextView XML attributes列出來了。code


參考文檔http://developer.android.com/guide/topics/ui/themes.html#PlatformStyles
orm

相關文章
相關標籤/搜索