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

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

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

    The NoteBook of EricKong

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

    有時候我們不滿足于系統(tǒng)控件的外觀要改變一些背景,文字顏色等,這些屬性可以在代碼里更改,隨便哪種控件,我們點,后面會出來一大串set開頭的方法。但是在代碼里這樣改來改去還是比較麻煩的,如果同樣的控件多了,重復的代碼也比較多。控件的這些屬性也是可以在xml文件里改的,同樣的控件多了,還是會帶來代碼的重復。這進我們就可以用設(shè)置控件樣子式的方法了。下面以EditText控件為例來說明如何來設(shè)置一個控件的樣式,工程序源碼可以在后面下載;

    第一步建立一個新的工程,在main布局里面建立三個EditText控件。

    第二步在工程的res/values文件夾下新建一個xml文件內(nèi)容如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="et1" parent="@android:style/Widget.EditText">
    <item name="android:background">#1A4EA4</item>
    <item name="android:textColor">#FFF111</item>
    </style>
    <style name="et2" parent="@android:style/Widget.EditText">
    <item name="android:background">#A6C60F</item>
    <item name="android:textColor">#EC02C3</item>
    </style>
    </resources>
    <!--
    說明:
    這里建立了兩種樣式,從字面意思上可以看出這兩中樣式分別都更改了背景顏色和文字顏色
    ,一個控件可以更改的屬性有很多,這里只改了兩個,要改其它的屬性,我們要知道屬性的name,
    才可以改。那所有的屬性的名字在哪呢?找了一番終于找到了,所有的屬性的名字在一個attrs.xml
    文件里。這個文件存在于:android sdk目錄\data\res\values 目錄下,找到這個文件以后我們
    改某些屬性時可以做為查看的資料了。
    上面的兩個樣式中,都有一個parent屬性。這就不難理解style是可以繼承的。在這里我們繼
    承的是系統(tǒng)默認的EditText屬性,只修改了背景和文字顏色而已。那系統(tǒng)的EditText樣式是在哪
    定義的呢?找了一番終于也找到了,所有系統(tǒng)控件的樣式是在一個style.xml文件中,這個文件也
    在上面說的那個目錄下。里面我們可以找到Widget.EditText的樣式定義。有了它我們也可以查看
    某一種控件可以更改哪些樣式了。
    在設(shè)置style時,我們經(jīng)常用到@和?@表明引用的的資源是在一個項目或是系統(tǒng)框架中定義過
    的。?表明引用的資源是在當前的主題定義過的。
    上面的設(shè)置背景中的值除了可以是顏色的值外,還可以是一個圖片的引用哦~~。

    -->
    復制代碼



     

    第三步我們修改main布局文件中EditText的屬性。為了對比,我們將第一個屬性將做改變,第二個的style屬性設(shè)為我們上面建立的name為et1的樣式。第三個的style屬性設(shè)為我們上面建立的name為et2的樣式,代碼如下:

    復制代碼
    <?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">
    <EditText android:layout_width="fill_parent"
    android:layout_height
    ="wrap_content" android:text="默認樣式" android:id="@+id/et1"></EditText>
    <EditText android:layout_width="fill_parent" android:id="@+id/et2"
    android:text
    ="自定義樣式一" android:layout_height="wrap_content" style="@style/et1"></EditText>
    <EditText android:layout_width="fill_parent" android:id="@+id/et3"
    android:text
    ="自定義樣式二" android:layout_height="wrap_content" style="@style/et2"></EditText>
    <Button android:text="改變主題" android:id="@+id/btn1"
    android:layout_width
    ="fill_parent" android:layout_height="wrap_content"></Button>
    </LinearLayout>
    復制代碼

     

     加了一個改變主題的按鈕是無效的,下一篇會用到它來設(shè)置主題。雖然定義好了style文件,但似乎并不能在java代碼里設(shè)置,我沒有發(fā)現(xiàn)像setStyle()這樣的方法。所以就不 能在java代碼里能過style文件動態(tài)改變控件的樣式, 不知道哪位仁兄可以解決此問題,特在此求教了。

     無圖無真相,下面是截圖:

    posted on 2014-12-16 11:57 Eric_jiang 閱讀(377) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲国产中文v高清在线观看| 亚洲美女视频一区| 免费黄网站在线观看| 亚洲第一精品电影网| 国产不卡免费视频| 欧洲人免费视频网站在线| 一本色道久久综合亚洲精品蜜桃冫| 亚洲А∨精品天堂在线| 99蜜桃在线观看免费视频网站| 亚洲日韩精品无码AV海量| 国产亚洲精品线观看动态图| 免费人成网站在线观看10分钟| 日本一区二区在线免费观看| 亚洲无线电影官网| 免费人成激情视频| 91精品免费国产高清在线| 日韩一区二区三区免费播放| 亚洲天堂一区二区三区四区| 国产精品亚洲精品日韩已方| 成年女性特黄午夜视频免费看| 日韩免费在线观看视频| 春暖花开亚洲性无区一区二区 | 99在线精品视频观看免费| 一级女人18片毛片免费视频| 亚洲a级在线观看| 亚洲av中文无码乱人伦在线播放| 四虎影在线永久免费观看| 永久免费在线观看视频| 巨胸狂喷奶水视频www网站免费| 亚洲色一区二区三区四区| 亚洲国产精品久久| 亚洲一级特黄大片在线观看| 四虎成人精品一区二区免费网站| 日本不卡免费新一区二区三区| 香蕉视频在线观看免费| 日韩亚洲产在线观看| 亚洲精品综合久久中文字幕| 亚洲人成人无码网www电影首页| 亚洲成a人一区二区三区| 成人在线免费观看| 噼里啪啦免费观看高清动漫4|