如何在Android中为复选框勾选设置白色背景?

时间:2013-04-15 11:46:54

标签: java android

我正在开发4.0版本的Android应用程序,并且所有复选框都有黑色背景,但我需要白色。如果我使用“background”xml属性为“white”,那么所有复选框(带文本)都是白色;我只需要白色的地方。

4 个答案:

答案 0 :(得分:0)

最简单的方法 - 使用CheckBox模拟ImageView 3个背景状态(stateSelected=truestateSelected=falsestatePressed = true)。
只需创建具有3个背景的适当xml文件,并将其设置为ImageView background
然后在代码中,点击ImageView时只需切换ImageView.setSelected = !ImageView.isSelected即可。

希望得到它的帮助

答案 1 :(得分:0)

有一件事是创建一个自定义复选框。我想这就是你要找的东西。此链接可以帮助您:Android: Set color of CheckBox

答案 2 :(得分:0)

我不知道我是非常迟到还是什么,但这里是solution

代码段:

说这个选择器名为“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" />

答案 3 :(得分:0)

也许我的解决方案不是很优雅,但它对我有用:

我简单地使用复选框矩形(15x15)和白色背景的尺寸创建另一个布局。然后我将此布局添加到RelativeLayout,我也放置了复选框。利用9dp的边距,我将白色布局矩形放在复选框下方,因此复选框bacground颜色似乎是白色。

        <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>