首页 > 移动平台 > 详细

Android知识整理(3) 两种自定义样式的Checkbox

时间:2014-04-16 21:16:04      阅读:580      评论:0      收藏:0      [点我收藏+]

昨天与人讨论checkbox的样式问题,常见的自定义样式是改变checkbox的button图片,但是他的需求是去掉checkbox的选项框,使checkbox的样式类似button。我最初给的建议是使用TextView,点击一次改变背景颜色,然后保存当前状态(选中或未选中),但还是很麻烦,查找资料,找到了第二种checkbox的自定义样式方式,总结一下,备忘。

 

一、修改checkbox选项框样式

首先我们要找到两张checkbox选项框的图片:

bubuko.com,布布扣normal.png

bubuko.com,布布扣checked.png

然后我们设置一个背景选择器checkbox_style.xml:

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/checked" android:state_checked="true"/>
    <item android:drawable="@drawable/normal" android:state_checked="false"/>
    <item android:drawable="@drawable/normal"/>

</selector>
bubuko.com,布布扣

到这里,在往下有两种方案,一种是直接在布局文件的android:button属性中设置:

bubuko.com,布布扣
1  
2 <CheckBox
3             android:id="@+id/checkbox1"
4             android:layout_width="wrap_content"
5             android:layout_height="wrap_content"
6             android:text="@strings/check_text"
7             android:button="@drawable/checkbox_style"
8             android:checked="true"/>
bubuko.com,布布扣

还有一种是在style.xml文件中添加样式MyCheckboxStyle,并在布局文件中的style属性中设置:

bubuko.com,布布扣
1 <style name="MyCheckboxStyle" parent="@android:style/Widget.CompoundButton.CheckBox">
2     <item name="android:button">@drawable/checkbox_style</item>
3 </style>
bubuko.com,布布扣
bubuko.com,布布扣
1 <CheckBox
2         android:id="@+id/checkbox1"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         style="@style/MyCheckboxStyle" />
bubuko.com,布布扣

 

二、去掉选项框,自定义类Button样式

同样,我们需要来一个selector checkbox_style.xml,但是这里的图片就不是选项框的图片了,而是整个checkbox的背景图片

bubuko.com,布布扣
1 <?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3 
4     <item android:drawable="@drawable/checked" android:state_checked="true"/>
5     <item android:drawable="@drawable/normal" android:state_checked="false"/>
6     <item android:drawable="@drawable/normal"/>
bubuko.com,布布扣

然后,我们可以在布局文件中将android:button属性设置为“@null”来去掉选项框,并且在android:background属性中设置:

bubuko.com,布布扣
1  
2 <CheckBox
3             android:id="@+id/checkbox1"
4             android:layout_width="wrap_content"
5             android:layout_height="wrap_content"
6             android:background="@drawable/checkbox_style"
7             android:button="@null"
8             android:checked="true"/>
bubuko.com,布布扣

OK,这就是两种自定义样式的CheckBox啦。

 

Android知识整理(3) 两种自定义样式的Checkbox,布布扣,bubuko.com

Android知识整理(3) 两种自定义样式的Checkbox

原文:http://www.cnblogs.com/lihualuo/p/3665847.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!