<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 189,comments - 115,trackbacks - 0

    樣式是用于描述一個View或是一個窗口的顯示屬性的集合,樣式可以指定如高度,填充,字體顏色,字體大小,背景顏色等屬性。樣式是從布局文件中分離出來的一個XML資源文件。Android中的樣式就像Web開發中的css樣式表,它使用我們的樣式獨立于內容進行設計開發。
    例如,通過使用一個樣式可以讓如下的布局文件

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#00FF00"
        android:typeface="monospace"
        android:text="@string/hello" />

    簡化為:

    <TextView
        style="@style/CodeFont"
        android:text="@string/hello" />

    所有和樣式有關的屬性都被從布局XML文件中移動到一個叫“CodeFont”的樣式定義中,然后使用一個style屬性指定樣式名稱。你將會在以下的內容中看到如何定義一個樣式。

    應用于一個Activity或應用程序的樣式稱為主題(theme),而不是剛才說的一個View。所有在當前Activity或應用下的視圖(VIEW)都會應用相同的主題樣式。例如,您可以讓一個Activity使用”CodeFont”主題,那么這個Activity下的所有視圖的的文本都將是綠色等寬字體。

    定義樣式

    定義樣式我們需要在 res/values/目錄下新建一個XML文件,文件名自已隨便命名,但必須以.xml為文件后綴。Xml的根節點必須為
    我們用style標簽來定義一個樣式,用標簽來定義樣式屬性。如下所示:

    <?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>

    Style標簽的name屬性是必須有的,節點可以定義顏色、高度或者是另一個資源的引用。所有節點的子節點在編譯時都會做為應用程序的一個資源。所以我們可以通過style節點的name屬性值來引用這個資源。比如在布局文件中使用@style/CodeFont來引用這個樣式。parent 屬性是可選的,用它來標識本樣式是繼承哪個樣式,在父樣式中的所有屬性都將被應用于本樣式中,同時可以覆蓋父樣式中的樣式(和java的繼承相似)。

    樣式的繼承
    這里有兩種方式可以實現樣式繼承,如上例中所示的,我們可以在定義樣式時使用parent屬性來繼承樣式,使用這種方式,我們可以繼承一個我們自己定義好的樣式,也可以繼承一個android平臺自帶的樣式(后文中會介紹android平臺自帶的所有樣式)。如下所示,我們繼承一個android平臺默認的文本樣式,并把它的字體顏色改為我們需要的顏色。

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

    另一種繼承的方式是使用用戶自定義的樣式作為前綴即可。這種方式只適用于繼承用戶自定義樣式。如下所示:

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

    這樣,新定義的樣式就會繼承CodeFont樣式的所有屬性,然后把字體顏色變為#FF0000。我們可以這樣引用新的樣式: @style/CodeFont.Red
    相同的方法,我們可以再繼承下去,如下所示:

    <style name="CodeFont.Red.Big">
    <item name="android:textSize">30sp</item>
    </style>

    這樣新的樣式文子的大小就和CodeFont.Red樣式不同了。

    樣式屬性

    到這里為止,你已經知道了如何定義一個樣式,你還需要知道有多少種樣式屬性可以通過節點來定義。你可能已經對其中的一些比較熟悉了,如layout_width 、textColor等。當然,還有很多的樣式屬性是你可以使用的。

    最好的方法查詢一個視圖支持哪些樣式屬性的方法是查詢視圖類的文檔中XML Attributes表格,如TextView的XML attributes如鏈接中所示: http://www.ideasandroid.com/android/sdk/docs/reference/android/widget/TextView.html#lattrs

    如需所有可用的樣式屬性的,請參閱R.attr: http://www.ideasandroid.com/android/sdk/docs/reference/android/R.attr.html
    不是所有的視圖都支持上面的樣式屬性,如果遇到不支持的樣式屬性,您定義的屬性將會被忽略。

    應用樣式和主題

    應用樣式和主題的方法很簡單,在布局定義文件(layout)中,使用style屬性直接引用樣式資源,如下所示:

    <TextView
        style="@style/CodeFont"
        android:text="@string/hello" />

    在AndroidManifest.xml文件中可以引用樣式主題,可以為一個Activity定義一個主題,也可以為整個應用程序定義一個主題,如下所示:

    <application android:theme="@style/CustomTheme">

    或者:

    <activity android:theme="@style/CustomDialogTheme">

    Android平臺的樣式和主題

    樣式見:http://www.ideasandroid.com/android/sdk/styles.xml
    主題見:http://www.ideasandroid.com/android/sdk/themes.xml

    posted on 2010-08-17 17:14 MEYE 閱讀(1089) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲最大AV网站在线观看| 免费观看成人毛片a片2008| 国产无限免费观看黄网站| 日韩免费在线中文字幕| 国产亚洲高清在线精品不卡| 色婷婷六月亚洲综合香蕉| 亚洲爆乳少妇无码激情| 亚洲变态另类一区二区三区| 综合偷自拍亚洲乱中文字幕 | 在线观看日本免费a∨视频| 日本免费网站视频www区| 99久久久精品免费观看国产| 2021免费日韩视频网| 亚洲三级高清免费| 午夜两性色视频免费网站| 国产精品酒店视频免费看| 国产大片91精品免费看3| 亚洲视频一区二区| 国产亚洲综合一区柠檬导航| 亚洲AV人人澡人人爽人人夜夜| 久久久久久亚洲AV无码专区| 亚洲人成在线精品| 苍井空亚洲精品AA片在线播放| 一级特级aaaa毛片免费观看| 国产一级片免费看| 1000部拍拍拍18勿入免费凤凰福利| 免费看国产成年无码AV片| 亚洲 无码 在线 专区| 亚洲色欲一区二区三区在线观看| 亚洲国产精品一区| 亚洲人成网站999久久久综合| 亚洲第一综合天堂另类专| 一个人免费播放在线视频看片| 免费无码作爱视频| 一二三四在线观看免费高清中文在线观看 | 精品亚洲A∨无码一区二区三区| 亚洲乱码卡三乱码新区| 女bbbbxxxx另类亚洲| A国产一区二区免费入口| 97久久免费视频| 麻豆成人精品国产免费|