Android XML绘图(3)——Selector
一、简介
通过对 selector 的使用,可以根据用户不同的选定状态,提供不同的样式,给用户提供更好的交互体验。
二、使用
- item是从上往下匹配的,如果匹配到一个item那它就将采用这个item,而不是采用最佳匹配的规则;所以设置默认的状态,一定要写在最后,如果写在前面,则后面所有的item都不会起作用了。
常用的几种选中状态:
android:state_selected 是否选中
android:state_focused 是否获得焦点
android:state_pressed 是否按下
android:state_enabled 是否可用
android:state_window_focused 默认时的背景图片
三、示例
给 TextView 设置按下和未按下时不同的背景:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:shape="rectangle" > <!-- 填充的颜色 --> <solid android:color="#33ffffff"></solid> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:radius="0dp" /> <!-- padding:Button里面的文字与Button边界的间隔 --> <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp" /> </shape> </item> <item android:state_pressed="false"> <shape android:shape="rectangle" > <!-- 填充的颜色 --> <solid android:color="#ffffff"></solid> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:radius="0dp" /> <!-- stroke 描边,边框宽度、颜色 --> <stroke android:width="0dp" android:color="#e0e0e0" /> <!-- padding:Button里面的文字与Button边界的间隔 --> <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp" /> </shape> </item> </selector>