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

来源:互联网 发布:漫画控连接不了网络 编辑:程序博客网 时间:2024/06/05 19:39
用过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"
阅读全文
0 0