點擊或者按下背景或字體顏色修改使用及注意問題

用過selector的都知道,當我們爲了更好用戶體驗,當點擊button 或者觸摸字體時 ,顏色需要出現相應變化,使用selector背景選擇器。
怎麼使用呢?簡單介紹下。
如果作爲佈局或者控件背景時,在res下建立drawable文件夾,在drawable文件夾下,新建一個XXX.xml的文件,出現
如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

</selector>

selector中要寫代碼(各種狀態的item)

<item android:drawable="@drawable/press" android:state_focused="true" />
    <item android:drawable="@drawable/press" android:state_selected="true" />
    <item android:drawable="@drawable/press" android:state_pressed="true" />
    <item android:drawable="@drawable/normal" />

解釋狀態:

 android:color="mcolor" //正常情況下
        android:state_pressed=["true" | "false"]//是否觸摸 
        android:state_focused=["true" | "false"]//是否獲得焦點
        android:state_selected=["true" | "false"]//是否被選狀態
        android:state_checkable=["true" | "false"]//是否可選
        android:state_checked=["true" | "false"]//是否選中
        android:state_enabled=["true" | "false"]//是否可用
        android:state_window_focused=["true" | "false"] />//是否窗口聚焦

如果我們想要文字顏色改變,那麼我們需要在res下建立color文件夾,在color文件夾下新建xxx.xml,selector使用同drawable下用法。
demo:

點擊佈局修改背景和其中文字

我們使用顏色,所以在res/color/bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/colorGray" android:state_focused="true" />
    <item android:color="@color/colorGray" android:state_selected="true" />
    <item android:color="@color/colorGray" android:state_pressed="true" />
    <item android:color="@color/colorWhite" />

</selector>

如果使用圖片背景的話,使用drawable文件夾item寫法:

<item android:drawable="@drawable/graypic" android:state_selected="true" />

千萬不要在使用android:color=…
color中也不要使用drawable=…

最後在佈局及TextView文件中使用即可

android:background="@color/bg"
android:textColor="@color/tvbg"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章