<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产精品美女久久久免费| 国产免费丝袜调教视频| 久久精品电影免费动漫| 免费的一级片网站| 香蕉蕉亚亚洲aav综合| 麻豆安全免费网址入口| 成人午夜性A级毛片免费| 久久久久亚洲AV无码专区首JN| 美女网站在线观看视频免费的| 亚洲男人第一无码aⅴ网站| 亚洲欧美成人一区二区三区| 最近中文字幕完整免费视频ww| 亚洲无线码在线一区观看| 一级做a爰全过程免费视频毛片| 亚洲人成色77777在线观看大| 一级毛片免费观看不卡视频| 亚洲精品视频在线观看视频| 99xxoo视频在线永久免费观看| 激情内射亚洲一区二区三区| 亚洲三级高清免费| 亚洲熟妇无码一区二区三区| 在线看片人成视频免费无遮挡| 亚洲AV无码成人精品区狼人影院 | 亚洲综合久久一本伊伊区| 69av免费观看| 亚洲国产激情在线一区| 亚洲综合日韩久久成人AV| 热久久这里是精品6免费观看| 亚洲开心婷婷中文字幕| 久久国产精品萌白酱免费| 激情无码亚洲一区二区三区| 中文字幕精品亚洲无线码一区| 拨牐拨牐x8免费| jjizz全部免费看片| 亚洲AV无码一区二区一二区| 亚洲酒色1314狠狠做| 最新亚洲成av人免费看| 国产成人免费a在线视频app| 国产成人无码精品久久久免费| 亚洲真人无码永久在线观看| 亚洲酒色1314狠狠做|