如何设置复选框边框颜色

时间:2014-10-19 05:40:29

标签: android android-layout android-styles android-checkbox

复选框边框在白色背景上不可见。

enter image description here

我玩了不同的颜色参数但没有成功。 我需要黑色边框。 是的,有自定义复选框的示例。 在所有可绘制的示例中,正常框在新形状内部可见。 android:text=""中的可绘制形状很窄而没有文字。

enter image description here

但为什么复选框在通常的xml中看起来不行:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutBottom1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="#FFFFFF"
    android:gravity="center" >
    <CheckBox
        android:id="@+id/checkBottom1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAA"
        android:visibility="visible"
        android:textColor="#000000"
        android:checked="true" />

</LinearLayout>

有什么想法吗?谢谢!

5 个答案:

答案 0 :(得分:26)

回答为时已晚,但我想分享一下对我有用的东西。 粘贴下面的代码。它会更改CheckBox边框颜色和textColor

<强> styles.xml

<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar">
    <item name="colorControlNormal">#000</item>   <!-- normal border color change as you wish -->
    <item name="colorControlActivated">#000</item> <!-- activated color change as you wish -->
    <item name="android:textColor">#FFFF3F3C</item> <!-- checkbox text color -->
</style>

现在位于CheckBox代码

下面的 main_activity.xml 位置
<CheckBox android:id="@+id/check_agree"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_margin="10dp"
          android:text="I agree"
          android:theme="@style/MyCheckBox"/>   <!-- here apply your checkbox style -->

如果以上样式无效,则将父主题parent="Theme.AppCompat.NoActionBar"替换为parent="Theme.AppCompat.Light"。希望它能起作用。

答案 1 :(得分:5)

您是否尝试过hereherehere? 并且在回答你的问题时

But why checkbox does not look okay in usual xml

多数派,因为有时候,android图形视图无法呈现自定义视图,在这种情况下,您需要在模拟器或设备上运行代码来测试它。

<强>更新 如果您不想使用drawable,那么您也可以在xml中定义可绘制的形状,如

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

        <solid android:color="#ffffff" >
        </solid>

        <stroke
            android:width="2dp"
            android:color="#ff0000" >
        </stroke>
<corners android:radius="5dp" />

    <padding
        android:bottom="4dp"
        android:left="4dp"
        android:right="4dp"
        android:top="4dp" />
    </shape>

答案 2 :(得分:3)

您可以使用它们之一:

app:buttonTint="color code here"

android:buttonTint="color code here"

答案 3 :(得分:0)

以上所有答案对我都没有用,但是this one确实有用。它建议使用选择器并将其应用到复选框,这对我来说效果很好。

这不能解释上面显示的复选框的奇怪外观,这就是为什么我不将这个问题标记为重复的原因,但是我认为它仍然可以作为解决方案。

答案 4 :(得分:0)

对于 API 级别 < 21,您可以使用:

app:buttonTint="EEEEEE"

对于 API 级别 >= 21,您可以使用:

android:buttonTint="EEEEEE"