Android Button之selector
2016-07-19
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>
我实现的效果是,正常状态下按钮:背景白色有边框,文字绿色,文字左边图片是绿色图案
按下时:背景绿色无边框,文字白色,图片是白色图案。
当然以上的图片自己加哦!