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
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> 5 Comments
ggomeze
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/…
Shaishav Jogani
@ggomeze what if we want to change the size of text as well ??
ggomeze
Have you tried scale within the Checkbox?: android:scaleX="1.5" and android:scaleY="1.5"
soshial
android:button property doesn't work on pre-Lollipop devicesAntek
@soshial what should be the preferred compat method then?
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
Andrain
Thank you so much, I have been struggling for days. Only your solution worked.