RadioButton – ¿Cómo usar un drawable personalizado?

Parece que podemos usar lo siguiente en un RadioButton:

android:button="@drawable/myCustomStateBackground" 

Pero que sólo se puede dibujar ocupa el lugar donde normalmente se puede extraer la radio. Idealmente quiero que mi fondo de botón entero sea stateful. Así que cuando se empuja, quiero que todo el botón se vea como su atascado en el estado presionado. Para hacer eso, esperaba poder hacer algo como:

 android:button="null" android:background="@drawable/myCustomStateBackground" 

Pero entonces el fondo dibujable no sabe sobre el estado de empuje, como hace el atributo del botón. ¿Hay alguna forma de evitarlo?

Dé a su radiobutton un estilo personalizado:

 <style name="MyRadioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton"> <item name="android:button">@drawable/custom_btn_radio</item> </style> 

Custom_btn_radio.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_window_focused="false" android:drawable="@drawable/btn_radio_on" /> <item android:state_checked="false" android:state_window_focused="false" android:drawable="@drawable/btn_radio_off" /> <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/btn_radio_on_pressed" /> <item android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/btn_radio_off_pressed" /> <item android:state_checked="true" android:state_focused="true" android:drawable="@drawable/btn_radio_on_selected" /> <item android:state_checked="false" android:state_focused="true" android:drawable="@drawable/btn_radio_off_selected" /> <item android:state_checked="false" android:drawable="@drawable/btn_radio_off" /> <item android:state_checked="true" android:drawable="@drawable/btn_radio_on" /> </selector> 

Sustituya los tirantes por los suyos.

Debe establecer android:button="@null" lugar de "null" .

Estabas tan cerca!

Solución completa aquí:

 <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:checked="true" android:text="RadioButton" /> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:layout_marginTop="20dp" android:text="RadioButton" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:layout_marginTop="20dp" android:text="RadioButton" /> </RadioGroup> 

Selector XML

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

Si desea cambiar el único icono de botón de radio, sólo puede agregar android:button="@drawable/ic_launcher" a su botón de android:button="@drawable/ic_launcher" y para hacer sensible en el clic, entonces usted tiene que utilizar el selector

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

Y establecer a su radio android:background="@drawable/name_of_selector"

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.