Android Button之selector

来源:互联网 发布:淘宝电脑直通车怎么找 编辑:程序博客网 时间:2024/05/16 14:00
 Android中按钮控件Button是最常用的控件之一。我们可以通过android:background给Button设置背景颜色(图片)或者 通过在res/drawable中定义selector来设置Button不同状态显示不同的效果。 其实我们还可以使用selector来处理android:drawableLeft(实现不同状态下文字左边不同的图片效果) 及 android:textColor(实现不同状态下文字左边不同的文字颜色)。

—-1,设置Button背景bg_selector.xml——

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><!--未按下状态的设置-->    <item android:state_pressed="false">    <!--设置背景形状-->        <shape xmlns:android="http://schemas.android.com/apk/res/android">        <!--设置圆角-->            <corners android:radius="10dp" />             <!--设置背景颜色-->            <solid android:color="#FFFFFF" />             <!--设置边框-->            <stroke android:width="1dp" android:color="#4AB17C" />        </shape>    </item>    <!--按下状态的设置-->    <item android:state_pressed="true">        <shape xmlns:android="http://schemas.android.com/apk/res/android">            <corners android:radius="10dp" />            <solid android:color="#4AB17C" />        </shape>    </item>//注:当然我们可以为android:state_pressed不同状态设备不同的drawable

—2,设置Button的文字+图片效果:draw_left_selector.xml——-

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <!--未按下状态的图片-->    <item android:drawable="@drawable/off_line_select" android:state_pressed="false" />      <!--按下状态的图片-->    <item android:drawable="@drawable/off_line_normal" android:state_pressed="true" />        <!--默认状态的图片-->    <item android:drawable="@drawable/off_line_select" /></selector>

–3,设置Button的文字颜色text_color_selector.xml——–

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--按下时Button文字颜色-->    <item android:color="@color/white" android:state_pressed="true"></item>      <!--未按下时Button文字颜色-->    <item android:color="@color/green" android:state_pressed="false"></item></selector> 

–4,在Button对应的布局文件中使用——–

 <Button            android:id="@+id/btn_off_line"            android:layout_width="wrap_content"            android:layout_height="28dp"            android:layout_alignParentRight="true"            android:layout_alignParentTop="true"            android:layout_margin="15dp"            <!--设置背景-->            android:background="@drawable/bg_selector"            <!--设置文字左边图片效果-->            android:drawableLeft="@drawable/draw_left_selector"            android:drawablePadding="3dp"            android:paddingLeft="3dp"            android:paddingRight="3dp"            android:text="按钮样式"            <!--设设置文字颜色-->            android:textColor="@drawable/text_color_selector"            android:textSize="15sp"></Button>
  我实现的效果是,正常状态下按钮:背景白色有边框,文字绿色,文字左边图片是绿色图案  按下时:背景绿色无边框,文字白色,图片是白色图案。  当然以上的图片自己加哦!
0 1
原创粉丝点击