18

I know how to set background for my radio button. But I don't know what is the best/right way to change background of selected radio button? Is it possible to make it in xml or has to be done in code?

Regards

Elemental
  • 7,365
  • 2
  • 28
  • 33
zmeda
  • 2,909
  • 9
  • 36
  • 56

3 Answers3

44

Just create a selector xml file in drawable folder

checkbox_background.xml

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

And apply this background to your radio buttons

 <RadioButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/checkbox_background" />
Mathieu Hausherr
  • 3,485
  • 23
  • 30
1

You can define a selector for your radio button as described in this answer:

Is it possible to change the radio button icon in an android radio button group

Community
  • 1
  • 1
Damian
  • 8,062
  • 4
  • 42
  • 43
  • I have defined two selectors: one for background and one for button. The problem now is that text inside radio button does not start at the end of button but at start of radio button. In other words it is aligned left based on whole radio button. – zmeda Jun 05 '11 at 20:32
  • @zmeda having same same problem did you find solution. – mkso Nov 18 '11 at 16:52
  • I had to add padding, like this: radioChoice.setPadding( (radioChoice.getPaddingLeft() + 3), 0, 3, 1 ); – Jon Mar 22 '12 at 17:26
-12

Use

android:gravity="center"

for the radio button. This will center the text.

Inder Kumar Rathore
  • 39,458
  • 17
  • 135
  • 184