以前项目中经常使用的就是Button的状态背景选择器了,但是现在突然遇到一个字体颜色也要改变的需求,按照以前的方法时出现了一些问题,现在就把正确的解决方案写一下
整个需求需要3步来完成
1> 创建text_color_selector.xml
2>设置颜色
3>在button里面引用这个样式
第一步,在res文件夹下面创建drawable文件夹,在drawable里面创建text_color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:state_enabled="true" android:state_pressed="false"
android:color="@drawable/red" />
<item android:state_enabled="false" android:color="@drawable/gray" />
<item android:state_pressed="true" android:color="@drawable/green" />
<item android:state_focused="true" android:color="@drawable/red" />
</selector>
2>设置颜色
在values创建background。xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="red">#ff0000</drawable>
<drawable name="black">#000000</drawable>
<drawable name="green">#0f0</drawable>
<drawable name="gray">#ccc</drawable>
</resources>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@drawable/text_color_selector"/>