自定义控件可以让UI界面更加的炫酷,更符合用户的习惯。因此,好的自定义控件在开发中是相当重要的。今天在学习CheckButton多选框时用了一个不常见的drawableEnd属性。相对应的还有:drawableBottom(下方)、drawableLeft(左方)、drawableRight(右方)、drawableTop(上方)、drawableEnd(结束的地方)、drawableStart(开始的地方)。一般都是直接设置background属性,但是background属性是直接作为背景使用,在调节显示位置的时候不太方便。采用drawablexxx属性就方便了很多。下面是一个简单实例。
实现效果如下:素材有点丑,注重效果的实现。
selector代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/yescheckbox"/> <!-- 被压下状态时 的背景 --> <item android:state_checked="true" android:drawable="@drawable/yescheckbox"/> <!-- 被选中时的背景 --> <item android:drawable="@drawable/nocheckbox"/> <!-- 普通正常状态下的背景 --> </selector>
<CheckBox android:layout_marginLeft="20dp" android:id="@+id/study_mycheckBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="mycheckBoxChick" android:text="篮球" android:<span style="color:#ff6666;">background</span>="@drawable/checkbox_selecter" <span style="color:#ff6666;">android:button="@null"</span>/> <!-- 该属性可将系统所带的框去掉 --> <!-- background设置的selecter -->
<CheckBox android:layout_marginLeft="20dp" android:id="@+id/study_mycheckBox2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="mycheckBoxChick" android:text="足球" android:<span style="color:#ff6666;">drawableEnd</span>="@drawable/checkbox_selecter" android:button="@null"/> <!--drawableEnd设置的 selecter --> <!-- drawableEnd属性设置selecter会比background设置selecter有更好的效果 --> <CheckBox android:layout_marginLeft="20dp" android:id="@+id/study_mycheckBox5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="mycheckBoxChick" android:text="足球" android:<span style="color:#ff6666;">drawableBottom</span>="@drawable/checkbox_selecter" android:button="@null"/>
<CheckBox android:layout_marginLeft="20dp" android:id="@+id/study_mycheckBox3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="mycheckBoxChick" android:text="乒乓球" android:<span style="color:#ff6666;">background</span>="@drawable/checkbox_selecter" />
<span style="white-space:pre"> </span><!-- 没有设置android:button属性 --><span style="white-space:pre"> </span>