点击或者按下背景或字体颜色修改使用及注意问题

用过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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章