我想制作一个每周日历,其中每天都是一个自定义复选框,其目标看起来像下面的图像:
(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英寸......
我的代码有什么问题我没看到吗?有人有什么建议吗?
提前致谢
答案 0 :(得分:0)
问题是 135 x 135 按钮是否可以将文本推出CheckBox宽度的范围。您可以设置android:button="@color/transparent"
。