如何设置复选框边框颜色

问题描述 投票:27回答:3

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

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

但是为什么复选框在通常的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>

有任何想法吗?谢谢!

android android-layout android-styles android-checkbox
3个回答
62
投票

您可以使用该物业

android:buttonTint="what you want"设置您的复选框边框颜色。


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"。希望它能奏效。


5
投票

你尝试过hereherehere吗? 并且回答你的问题

But why checkbox does not look okay in usual xml

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

更新如果你不想使用drawables,那么你也可以在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>
© www.soinside.com 2019 - 2024. All rights reserved.