Android view不同狀態下切換不同背景

一般是通過設置background爲drawable資源實現不同狀態不同背景。
代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"//是否可點擊
        android:drawable="@drawable/bn_state_enabled"
        />
    <item
        android:state_focused="false"//是否獲取焦點
        android:drawable="@drawable/bn_state_default"
        />
    <item
        android:state_pressed="true"//是否點擊
        android:drawable="@drawable/bn_state_clicked"
        />
    <item
        android:state_focused="true"
        android:drawable="@drawable/bn_state_focused"
        />

</selector>

state_xxx屬性是控件的狀態,屬性值爲true和false,drawable屬性對應着這個狀態下的不同資源背景或者顏色,以其中一個爲例:

bn_state_clicked:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"   android:shape="rectangle" >
    <solid android:color="#eb0010" />
    <!-- <stroke android:color="#CCCCCC" android:width="1dp" android:dashWidth="5dp" android:dashGap="3dp"/> -->
    <stroke android:color="#eb0010" android:width="2dp"/>
    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />
</shape>

textview的文字顏色切換則需要設置textview對應的textcolor屬性爲drawable資源,代碼如下

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_selected="true"/>
    <item android:color="@color/item_pressed_color" android:state_activated="true"/>
    <item android:color="@color/item_default_color"/>
</selector>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章