73

Instead of having a check mark for the icon, I want a custom star (I have checked and unchecked icons). Can this be done through a property? Or must I declare a custom widget that derives from Checkbox?

4 Answers 4

191

Kind of a mix:

Set it in your layout file :-

 <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="new checkbox" android:background="@drawable/checkbox_background" android:button="@drawable/checkbox" /> 

where the @drawable/checkbox will look like:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_focused="true" android:drawable="@drawable/checkbox_on_background_focus_yellow" /> <item android:state_checked="false" android:state_focused="true" android:drawable="@drawable/checkbox_off_background_focus_yellow" /> <item android:state_checked="false" android:drawable="@drawable/checkbox_off_background" /> <item android:state_checked="true" android:drawable="@drawable/checkbox_on_background" /> </selector> 
Sign up to request clarification or add additional context in comments.

5 Comments

Same as with any other checkbox (developer.android.com/reference/android/widget/CheckBox.html). You can make use of of this method if manually want to set it to check or unchecked: developer.android.com/reference/android/widget/…
@ggomeze what if we want to change the size of text as well ??
Have you tried scale within the Checkbox?: android:scaleX="1.5" and android:scaleY="1.5"
android:button property doesn't work on pre-Lollipop devices
@soshial what should be the preferred compat method then?
16

This may be achieved by using AppCompatCheckBox. You can use app:buttonCompat="@drawable/selector_drawable" to change the selector.

It's working with PNGs, but I didn't find a way for it to work with Vector Drawables.

1 Comment

Thank you so much, I have been struggling for days. Only your solution worked.
14

it's android:button="@drawable/selector_checkbox" to make it work

Comments

2

One alternative would be to use a drawable/textview instead of a checkbox and manipulate it accordingly. I have used this method to have my own checked and unchecked images for a task application.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.