1. 程式人生 > >Android通過selector選擇器設定Button或者textview的背景顏色,字型顏色

Android通過selector選擇器設定Button或者textview的背景顏色,字型顏色

為了讓button等控制元件的點選效果看起來很有動感,所以寫了一個選擇器。

具體的技能點很好理解,只是有一個地方需要注意的地方,一會我會標紅。

這裡我就拿button來舉例子了,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//注意下面的程式碼順序
    //設定button點選狀態的背景
    //設定預設狀態的背景,這裡的背景可以使用drawable 也可以使用color,我這裡使用drawable目的是要邊框圓滑(自定義)
    <item 
android:state_pressed="true" android:drawable="@drawable/communityenterbackblue"/> <item android:drawable="@drawable/communityenterback"/> </selector>

這裡有一個注意的地方:上面兩行的順序一定不能顛倒,如果那樣,應該就會報錯嘍,為什麼? 因為選擇器的底層實現,是從上到下判斷,正確順序,程式碼判斷是否點選,點選設定背景,未點擊向下繼續判斷,到預設背景。 錯誤的順序,程式碼到了預設設定的那行,判斷確實是true,所以直接停,直接設定了背景 ,就不向下繼續判斷了,說的比較直白,大家容易理解。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//button點選狀態設定的顏色,注意這裡使用的是android:color
    <item android:state_pressed="true" android:color="@color/button_unpressed"/>
    <item android:color="@color/button_pressed"/>
</selector>
 還有一個需要注意的地方:上面的程式碼是圖片的背景使用的是android:drawable="@drawable/"   下面的卻是android:color="" 這裡要看好,textview設定  要使用color  而button 就要使用drawable了,千萬不要說因為都是設定顏色就使用color、   原因這裡我還真心不知道,知道的麻煩留言指教。

對了,textview設定背景和顏色的話  條件為focus。