ColorStateList可以改变文字的颜色,比如点击pressed,focus等的状态
StateListDrawable应用在Button上可以改变按钮的背景图片,比如由一个normal状态在点击的时候切换到pressed状态
实力代码如下:
ColorStateList,在工程目录res下创建一个color目录,然后创建一个btn_text.xml,用于改变按钮文字的颜色,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--按钮按下时的颜色,为blue-->
<item android:color="@android:color/holo_blue_dark" android:state_pressed="true" />
<!--默认情况下的按钮颜色为red-->
<item android:color="@android:color/holo_red_dark"/>
</selector>
StateListDrawable实例代码如下:在工程目录res/drawable下新建一个btn_select_bg.xml,用于控制按钮按下时候背景切换,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--按钮点击状态-->
<item android:state_pressed="true" android:drawable="@drawable/btn_green_pressed"/>
<!--按钮默认状态-->
<item android:drawable="@drawable/btn_green_normal"/>
</selector>
对应的布局文件上的Button标签代码:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/btn_text"
android:background="@drawable/btn_select_bg"
android:text="测试"/>
最后运行效果;这个是选中pressed状态
正常状态