原生的有点丑,UI的同学给了个切图替换 一下。
一、创建selector
两张图,一个是选中状态,一个是未选中状态。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/chk_yes_white" android:state_checked="true"/>
<item android:drawable="@drawable/chk_no" android:state_checked="false"/>
<item android:drawable="@drawable/chk_no" />
</selector>
二、布局文件
布局文件中有两种写法,注意以下三个属性
android:button
android:drawableLeft
android:drawablePadding
<CheckBox
android:id="@+id/ck_isOpenPrinter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:button="@null"
android:drawableLeft="@drawable/chk_bg_white_selector"
android:drawablePadding="20dp"
android:checked="false"
android:text="是否打印"
android:textSize="18sp"
android:textColor="@color/white"/>
<CheckBox
android:id="@+id/ck_isOpenPrinter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="20dp"
android:button="@drawable/chk_bg_white_selector"
android:checked="false"
android:text="是否打印"
android:textSize="18sp"
android:textColor="@color/white"/>
总结:
1、使用android:drawableLeft 设置自定义的复选框,需要设置android:button="@null",间距用android:drawablePadding来设置。
2、使用android:button设置自定义的复选框,间距用android:paddingLeft来设置
自定义RadioButton看这里