Android CheckBox自定义样式
在Android Studio中自定义CheckBox样式,功能实现如下:
第一步:首先你需要两张图片,作为CheckBox在选中和不被选中状态时的样式.至于图片放在哪个文件夹里,对于Android Studio你有两个选择,一是放在drawable,一是放在mipmap-hdpi.关于这两个文件夹的区别,这里引用谷歌官方的说法:"mipmap-hdpi 和 drawable 使用mipmap-hdpi作为你的位图或冲源是一个简单的方法来提供高质量的图像和各种图像的尺度,它可以是特别有用的如果你希望你的图像被缩小在一个动画.Android 4.2(API Level 17)添加在位图类Android mipmap支持互换MIP图像位图在你当你提供源,使sethasmipmap() mipmap。现在在Android 4.3中,您可以启用一个BitmapDrawable对象以及mipmap,通过提供一个mipmap资产设置Android:位图中的资源文件或致电hasmipmap()纹理属性。" 这段话是我通过翻译得出来的,介于初学者,大可理解为,对于应用图标之类的图片,可放置于mipmap-hdpi一系列文件夹中,对于其它图片建议存放在drawable中,而且对于mipmap-hdpi文件夹内图片的引用,Android Studio是没有代码提示的.初学者慎用之.
第二步:生成一个选择器,鼠标选中res 目录,Alt+Insert弹出对话框,选择Android resource file选项,弹出下图,如图更改,特别注意File name不支持大写字母,
selec_checkbox代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/checkbox_checked" android:state_checked="true"></item> <item android:drawable="@drawable/checkbox_unchecked" android:state_checked="false"></item> </selector>
第三步:在values文件夹下面的style.xml文件里增添如下代码,style name的名字可以随便取,但是item name:须为: android:button(会有代码提示),<item></item>引用你定义的选择器(有代码提示 Android Studio 代码提示快捷键为 "Ctrl+Alt+空格")
<style name="abc"> <item name="android:button">@drawable/select_checkbox</item> </style>
第四步:在layout文件夹下的activity_main.xml引用你所定义的style,代码如下:
<CheckBox android:id="@+id/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="@string/lv" style="@style/abc"/>