Android:背景选择器用法
一、简介
在开发应用中,很多情况下要设计listview或button控件的背景,如点击或者选中后,实现背景转换。而这些都是通过 Android 中的 selector 来实现的。
selector 可在drawable 下的 xml 文件中配置,通过配置,可以使系统运行时根据控件对象的状态使用相应的图片、文字等。
相关属性:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
android:state_checkable 控件可勾选状态,可以为true或false
android:state_checked 控件勾选状态,可以为true或false
根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。如下代码:
//使用selector设置字体颜色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#FF0000" />
<item android:state_focused="true" android:color="#00FF00" />
<item android:state_pressed="true" android:color="#0000FF" />
<item android:color="#000000" />
</selector>
二、实例
1.在选择器中使用 shape 属性
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--填充色 -->
<solid
android:color="#ffffff" />
<!-- 圆角 -->
<corners
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:bottomRightRadius="10dp"
/>
</shape>
</item>
<item >
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#55B4FE"
android:endColor="#3d8FFB"
android:type="linear"/>
<!-- 圆角 上下左右四个角 弧度-->
<corners
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:bottomRightRadius="10dp"
/>
</shape>
</item>
</selector>
2.在选择器中引用现有的 shape 文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_select" android:state_checked="true" />
<item android:drawable="@drawable/shape_unselect" android:state_checked="false" />
</selector>