2014年2月17日 星期一

Android 開發 (三十) Selector 使用

Selector讓我們可以客製化我們想要的UI色彩,
例如我希望按鈕在正常的情況下是灰色,在按下去時為藍色
又或者我希望checkbox在正常的情況下是灰色,被check的時候是藍色
要實作這個功能首先必須先在drawable-xxxx folder中創造一個

myselector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/mycolor1" android:state_pressed="true"></item>
    <item android:drawable="@color/mycolor2" android:state_pressed="false"></item>

</selector>

在上面的程式裡,我設定當view 的state為 pressed的時候  會顯示 mycolor1的drawable
當view的state為 not pressed的時候,會顯示mycolor2的drawable。

接著只需要設定 android:background="@drawable/myselector" 之後當客製化色彩的button就完成了

接著要客製化checkbox

checkboxselector.xml


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/mycolor1" android:state_checked="true"/>
    <item android:drawable="@color/mycolor2" android:state_checked="false"/>
    <item android:drawable="@color/mycolor2"/>

</selector>

上面的程式碼設定了當view 被 check的時候 顯示mycolor1 ,沒有check的時候顯示mycolor2
, 預設的色彩為 mycolor2
接著只需要設定 android:background="@drawable/checkboxselector"  就完成了

使用selector讓我們可以設定不同state時我們想要的色彩或者圖案。
在android developer網頁有更詳細的描述
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

沒有留言:

張貼留言