Set background color of unchecked checkbox Android

12,758

Solution 1

Do it like this-

In your layout file-

<android.support.v7.widget.AppCompatCheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:theme="@style/CheckboxStyle"/>

and in your style.xml file

<style name="CheckboxStyle" parent="AppTheme">
    <item name="colorAccent">@color/colorAccent</item>
</style>

Or you can change both the checked and unchecked color like this-

<style name="CheckboxStyle" parent="AppTheme">
    <item name="colorAccent">@color/colorAccent</item>  // for checked 
    <item name="android:textColorSecondary">@color/colorSecondary</item>  // for unchecked
</style>

change colorAccent and colorSecondary with your required colors.

hope it will help you..

Solution 2

I know it is answered but someone may find this useful, another way to achieve this is by using color state list, declare a color state list for the checkbox in an xml file

checkbox_state_list.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="@color/orange" android:state_checked="true"/>
   <item android:color="@color/black" android:state_checked="false"/>
</selector>

Now use this state list as

<android.support.v7.widget.AppCompatCheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:buttonTint="@color/checkbox_state_list"/>

Solution 3

You have to use CheckBox style like this:

in xml style

 <style name="MyCheckBox" parent="Theme.AppCompat.Light">
        <item name="colorControlNormal">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
 </style>

in xml layout .

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    style="@style/MyCheckBox"
    ...
Share:
12,758

Related videos on Youtube

Jim Clermonts
Author by

Jim Clermonts

Multiple award-­winning Android Developer. Has launched his own products and has Android and iOS apps live in the App stores. Has developed several apps (Android/iOS) as freelance programmer. Is highly specialized in Android SDK. Jim has worked for 8 months for a tech Startup in Silicon Valley as part of a traineeship. Jim also has experience in embedded software development in C/C++ and is a certified (ISTQB) software tester. Jim has won several prizes with attending and winning hackathons &amp; entrepreneurship competitions. More info: www.JimClermonts.nl

Updated on September 07, 2022

Comments

  • Jim Clermonts
    Jim Clermonts almost 2 years

    It has to be like this:

    enter image description here

    Currently it looks like this:

    enter image description here

    The rounded rectangle is not that important. But the unchecked state has to be black. This is my code:

    <CheckBox
        android:id="@+id/checkbox"
        android:buttonTint="@color/orange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    This is the theme I'm using:

      "Theme.AppCompat.Light.NoActionBar"
    

    I've tried this as well:

    <style name="checkbox_style" parent="Bijenkorf">
        <item name="material_grey_600">@color/black</item>
    </style>
    

    Because the default unchecked has the color #757575. And I looked this up in the Theme and it was "material_grey_600". But this doesn't compile. Any ideas?

  • D_Alpha
    D_Alpha about 7 years
    happy to help you.. :)
  • Big_Chair
    Big_Chair about 4 years
    The accepted answer did not work for me, but this worked perfectly