Android通過selector選擇器設定Button或者textview的背景顏色,字型顏色
阿新 • • 發佈:2019-02-05
為了讓button等控制元件的點選效果看起來很有動感,所以寫了一個選擇器。
具體的技能點很好理解,只是有一個地方需要注意的地方,一會我會標紅。
這裡我就拿button來舉例子了,
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> //注意下面的程式碼順序 //設定button點選狀態的背景 //設定預設狀態的背景,這裡的背景可以使用drawable 也可以使用color,我這裡使用drawable目的是要邊框圓滑(自定義) <itemandroid: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。