我正在为 4.0 版本开发 Android 应用程序,并且所有复选框都有黑色背景用于勾选,但我需要白色。如果我使用“背景”xml 属性作为“白色”,那么所有复选框(带文本)都是白色的;我只需要白色的地方来打勾。
问问题
3476 次
3 回答
0
也许我的解决方案不是很优雅,但它对我有用:
我只是用复选框矩形 (15x15) 的尺寸和白色背景创建了另一个布局。然后我将此布局添加到一个RelativeLayout,我还在其中放置了复选框。边距为 9dp,我将白色布局矩形放在复选框下方,因此复选框的背景颜色似乎是白色。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/login_large_margin"
android:layout_marginTop="@dimen/login_medium_margin" >
<RelativeLayout
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_margin="9dp"
android:background="@color/white" >
</RelativeLayout>
<CheckBox
android:id="@+id/login_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-light"
android:text="@string/login_check"
android:textColor="@color/white" >
</CheckBox>
</RelativeLayout>
于 2014-06-11T09:45:14.380 回答
0
最简单的方法 -CheckBox
使用ImageView
3 个背景状态 ( stateSelected=true
, stateSelected=false
, statePressed = true
) 进行模拟。
只需创建具有 3 个背景的适当 xml 文件并将其设置为ImageView
background
.
然后在代码中,单击时ImageView
只需 switch ImageView.setSelected = !ImageView.isSelected
。
希望它的帮助
于 2013-04-15T11:58:58.003 回答
0
我不知道我是不是很晚了还是什么,但这是解决方案
代码片段:
说这个选择器的名字是“checkbox_selector”
<?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/cbchk_blue"
android:state_focused="false">
</item>
<item android:state_checked="true"
android:drawable="@drawable/cbchk_blue"
android:state_focused="true">
</item>
<item android:state_checked="false"
android:drawable="@drawable/cbunchk_blue"
android:state_focused="false">
</item>
<item android:state_checked="false"
android:drawable="@drawable/cbunchk_blue"
android:state_focused="true">
</item>
为了将其仅设置为复选框而不是整个文本,您可以将其设置为:
<CheckBox
android:layout_width="45dip"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:button="@drawable/checkbox_selector"
android:text="@string/text_here" />
于 2014-03-05T07:02:15.897 回答