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>
原文地址:https://www.cnblogs.com/lkc9/p/11323902.html