码迷,mamicode.com
首页 > 移动开发 > 详细

android CheckBox RadioButton 图片与文字间距问题

时间:2014-10-18 15:33:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   io   ar   使用   2014   

在使用自定义的CheckBox 或RadioButton时,自定义的图标和文字在不同的手机上显示的间距不同,有时不太好控制,下面是我自定义的CheckBox:

在Layout下的xml:

<CheckBox 
            android:id="@+id/recharge_activity_cb"
            style="@style/CustomCheckboxTheme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="我已经阅读并同意"
            android:textColor="@color/huoqiuLightblackColor"
            android:checked="true" 
            />

里面自定义的style,style内容为:

<!-- 自定义CheckBox -->
    <style name="CustomCheckboxTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
        <item name="android:button">@drawable/checkbox_style</item>
        <item name="android:paddingLeft">@dimen/dp8</item>
    </style>

其中调用了选中和未选中图片,在drawable下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <item android:state_checked="true" android:drawable="@drawable/agree"/>
    <item android:state_checked="false" android:drawable="@drawable/disagree"/>
    <item android:drawable="@drawable/disagree"/>

</selector>


虽然通过设置paddingLeft在有的系统上可以显示想要的,但是有些则不行
<item name="android:paddingLeft">@dimen/dp8</item>

那么问题来了,到底用什么方法可以解决呐?

下面是我的解决方案:使用CheckedTextView控件

<CheckedTextView 
            android:id="@+id/recharge_activity_ctv"
            android:checkMark="@drawable/checkbox_style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            />

<TextView 
            android:id="@+id/buy_write_jine_agree_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="我已经阅读并同意"
            android:textColor="@color/huoqiuLightblackColor"
            android:layout_marginLeft="@dimen/dp3"
            />


其中checkMark就是上面drawable下的那个选中状态xml

android:checkMark="@drawable/checkbox_style"

然后在代码中对CheckedTextView使用isChecked()判断是否选中,使用toggle()方法设置选中和未选中效果,这样就不存在图标和文本的空隙问题了,问题完美解决!



android CheckBox RadioButton 图片与文字间距问题

标签:android   style   blog   http   color   io   ar   使用   2014   

原文地址:http://blog.csdn.net/lianqiangjava/article/details/40211117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!