我想制作一个每周日历,其中每天都是一个自定义复选框,其目标看起来像下面的图像:
(http://i.imgur.com/WjIKCd0.png)
当用户单击一天(在这种情况下为星期一)时,“背景”和“按钮”复选框以及文本颜色也会更改...
我制作了可绘制对象,似乎工作正常……请检查以下代码:
复选框布局:
<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英寸以下...
我没有看到的代码有什么问题吗?有人有什么建议吗?
提前致谢
问题在于135 x 135按钮可绘制对象将文本推到CheckBox宽度的范围之外。除了使用drawable之外,您还可以设置android:button="@color/transparent"
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句