Code Droid
Code Droid

Reputation: 10472

Changing Default Color of Android CheckBox Check Mark

How do I change the default color of the Android checkbox from green checkmarks to blue for a particular CheckBox?

Upvotes: 14

Views: 19909

Answers (2)

afathman
afathman

Reputation: 6143

This is easy to do in xml using buttonTint (as of API level 23):

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@color/COLOR_HERE" />

and as Nicolás pointed out, you can do this using appCompatCheckbox v7 for older APIs:

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

Upvotes: 8

HexAndBugs
HexAndBugs

Reputation: 5789

Unfortunately, changing the colour isn't a simple attribute. The checkmark is an image, so you have to create a custom image. Take a look at this example

Create a selector xml file such as this:

<?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/star_down" />
    <item android:state_checked="false" android:drawable="@drawable/star" />
</selector>

save this xml file in your res\drawables\ folder. Then inside your layout file apply it to your checkBox like this:

<CheckBox
    android:text="Custom CheckBox"
    android:button="@drawable/checkbox_selector"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

In this example you'd name your selector xml file "checkbox_selector.xml" and you'd need a star_down.png, and star.png in your drawables folder as well. You can use this technique to create different colored checkboxes by altering the system checkbox images to whatever color you want and referencing the altered png files in a selector.

Upvotes: 22

Related Questions