android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<!-- 没有焦点时的背景图片 -->
<!--选中时的图片背景-->
<!--获得焦点时的图片背景-->
<item android:state_focused="true"
<!--点击时的图片背景-->
<item android:state_pressed="true" android:drawable="@drawable/select" />
</selector>
二.使用xml文件:
1.方法一:在listview中配置android:listSelector="@drawable/xxx
或者在listview的item中添加属性android:background="@drawable/xxx"
2.方法二:Drawable drawable = getResources().getDrawable(R.drawable.xxx);
是配置button中的文字效果:
<Button android:textColor="@drawable/button_font" />
drawable/button_font.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#0FF" />
<item android:state_focused="true" android:color="#FF0" />
</selector>
Button还可以实现更复杂的效果,例如渐变
drawable/button_color.xml
< ?xml version="1.0" encoding="utf-8"?>
< selector xmlns:android="http://schemas.android.com/apk/res/android">
< item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
<shape>
</shape>
<item android:state_focused="true">/ / 定义当button获得 focus时的形态
< shape>
<padding android:left="10dp" android:top="10dp" android:bottom="10dp" android:right="10dp"/>
</shape>
</selector>
最后,需要在包含 button的xml文件里添加两项。例如main.xml 文件,需要在<Button />里加两项android:focusable="true"