例如我希望按鈕在正常的情況下是灰色,在按下去時為藍色
又或者我希望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
沒有留言:
張貼留言