设置自定义背景时,android复选框文本消失

时间:2014-11-17 17:05:07

标签: android android-layout checkbox android-checkbox textcolor

我想制作一个每周日历,其中每天都是一个自定义复选框,其目标看起来像下面的图像:

http://i.imgur.com/WjIKCd0.png

当用户点击一天(在这种情况下是星期一)时,“背景”和“按钮”复选框也会改变文字颜色......

我制作了drawables,它似乎工作得很好......检查下面的代码:

复选框布局:

<CheckBox
android:id="@+id/selectMonday"
android:layout_width="40dp"
android:layout_height="40dp"
android:button="@drawable/ic_none"
style="@style/CheckBoxBackgroundView"
android:onClick="selectDay"
android:text="@string/monday_letter"
android:gravity="center"
android:checked="true"/>

(可绘制的“ic_none”,简单的135x135“透明”图像,里面没有任何东西......)

样式(CheckBoxBackgroundView):

<style name="CheckBoxBackgroundView">
    <item name="android:background">@drawable/background_day_week_picker_box_selector</item>
    <item name="android:textColor">@color/text_color_day_week_picker_box_selector</item>
    <item name="android:textSize">@dimen/text_spinner_text</item>
    <item name="android:textStyle">bold</item>
</style>

背景选择器(background_day_week_picker_box_selector):

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

选择了背景(background_day_of_week_picker_selected):

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- view background color -->
    <solid
        android:color="@color/red_color" >
    </solid>

    <!-- view border color and width -->
    <stroke
        android:width="3dp"
        android:color="@color/transparent">
    </stroke>

    <!-- Here is the corner radius -->
    <corners
        android:radius="10dp"   >
    </corners>

</shape>

最后是颜色选择器(text_color_day_week_picker_box_selector):

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

我在几个设备中尝试了这个...在某些设备中,它看起来像是假设,在其他设备中,文本消失了,它看起来像这样:

http://i.imgur.com/Jy9FrPS.png

可能是巧合,但所有工作的设备都低于5英寸......

我的代码有什么问题我没看到吗?有人有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

问题是 135 x 135 按钮是否可以将文本推出CheckBox宽度的范围。您可以设置android:button="@color/transparent"

,而不是使用drawable