How to set checkbox border color

2019-02-04 02:56发布

The checkbox border is invisible on white background.

enter image description here

I played with different color parameters without success. I need black border of box. Yes, there examples to make custom checkbox. In all drawable examples the normal box is visible inside of new shape. And the drawable shape is narrow without text in android:text=""

enter image description here

But why checkbox does not look okay in usual 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>

Any ideas? Thanks!

3条回答
男人必须洒脱
2楼-- · 2019-02-04 03:10

It's too late to answer but I would like to share what worked for me. Paste below code. It would change the CheckBox border color and 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>

now in your main_activity.xml place below CheckBox code

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

if above style not working then replace parent theme parent="Theme.AppCompat.NoActionBar" with parent="Theme.AppCompat.Light". Hope it would work.

查看更多
神经病院院长
3楼-- · 2019-02-04 03:17

You can use the property

android:buttonTint="what you want" to set your checkbox border color.

查看更多
我欲成王,谁敢阻挡
4楼-- · 2019-02-04 03:17

Did you try going through here, here and here?
And as per answering your question

But why checkbox does not look okay in usual xml

Thats because sometimes, the android graphical view is not able to render the custom views, in that case you need to run the code on the emulator or the device to test it out.

UPDATE In case you dont want to use drawables, then you can also define the drawable shape in xml like

 <?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>
查看更多
登录 后发表回答