Estoy tratando de obtener el efecto de botón de radio para los botones normales en Android
Tengo un simple botón de radio de Android a continuación
El código para esto es ::
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton1" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton2" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton3" />
</RadioGroup>
</RelativeLayout>
Cómo personalizarlo como a continuación ::
Gracias !
[EDITAR] usando el código de una de las respuestas
Pero el nombre del botón está eclipsado por la opción de selección ¿cómo eliminarlo?
{EDITAR} más cambios
Al final, todos los cambios deberían, al menos, saber qué botón he seleccionado de entre tres botones de radio ... ¿es posible obtener lo siguiente?
Respuestas:
Agregue un fondo dibujable que haga referencia a una imagen o un selector (como se muestra a continuación) y haga que el botón sea transparente:
Si desea que sus botones de radio tengan un recurso diferente cuando está marcado, cree un fondo de selector que se pueda dibujar:
res / drawable / yourbuttonbackground.xml
En el selector de arriba, hacemos referencia a dos elementos dibujables
a
yb
así es como los creamos:res / drawable / a.xml - Estado seleccionado
res / drawable / b.xml: estado normal
Más información sobre los dibujos aquí: http://developer.android.com/guide/topics/resources/drawable-resource.html
fuente
android:button="@android:color/transparent"
para eliminarlo.He actualizado la respuesta aceptada y eliminado cosas innecesarias.
He creado XML para la siguiente imagen.
Su código XML para
RadioButton
será:radio_flat_selector.xml
para selector de fondo:radio_flat_selected.xml
para el botón seleccionado:radio_flat_regular.xml
para selector regular:Todo el código de archivo 3 anterior estará en la
drawable/
carpeta.Ahora también necesitamos
Text
Selector de color para cambiar el color del texto en consecuencia.radio_flat_text_selector.xml
para selector de color de texto(Use la
color/
carpeta para este archivo).Nota: Revisé muchas respuestas para este tipo de solución, pero no encontré una buena solución, así que la hice.
Espero que te sea útil.
Gracias.
fuente
Use el mismo formato de archivo XML de la respuesta de Evan, pero un archivo dibujable es todo lo que necesita para formatear.
Y su archivo extraíble por separado:
fuente
La configuración
android:background
yandroid:button
el RadioButton como la respuesta aceptada no funcionaron para mí. La imagen dibujable se mostraba como fondo (aunqueandroid:button
se configuraba como transparente) al texto del botón de radio comoasí que di radiobutton como el radiobuttonstyle.xml dibujable personalizado
y radiobuttonstyle.xml es el siguiente
y después de este botón de radio con un estilo de botón personalizado funcionó.
fuente
Debe completar el atributo "Botón" de la clase "CompoundButton" con una ruta dibujable XML ( my_checkbox ). En el sorteo XML, debe tener:
No olvide reemplazar my_checkbox por su nombre de archivo de la casilla de verificación dibujable, checkbox_not_checked por su PNG dibujable, que es su casilla de verificación cuando no está marcada y checkbox_checked con su imagen cuando está marcada.
Para el tamaño, actualice directamente los parámetros de diseño.
fuente
android:background
vsandroid:button
; luego declarando elandroid:button
como transparente. De esta manera, el texto puede quedar dentro del botón.Para ocultar el botón de opción predeterminado, sugiero eliminar el botón en lugar de hacerlo transparente, ya que todos los comentarios visuales se manejan con el fondo dibujable:
También sería mejor usar estilos, ya que hay varios botones de opción:
Necesitará también el dibujo personalizado Seslyn customButtonBackground .
fuente
La mejor manera de agregar dibujos personalizados es:
La superposición de sombras mediante un dibujo personalizado se elimina aquí.
fuente
background
. Si establece el fondo, no puede agregar texto al RadioButton y necesita colocar su propio TextViewManera simple prueba esto
Cree un nuevo diseño en una carpeta dibujable y asígnele el nombre custom_radiobutton (también puede cambiarle el nombre)
Use esto en su actividad de diseño
fuente
El siguiente código es un ejemplo de botón de opción personalizado. siga los pasos a continuación.
Archivo xml.
2.agregue el xml personalizado para los botones de radio
2.1.otro dibujable
custom_other_button.xml
2.2.muñeca dibujable
custom_female_button.xml
2.3. dibujable masculino
custom_radio_button.xml
fuente
Me doy cuenta de que esta es una respuesta tardía, pero mirando a través de developer.android.com, parece que el botón Toggle sería ideal para su situación.
http://developer.android.com/guide/topics/ui/controls/togglebutton.html
Y, por supuesto, aún puede usar las otras sugerencias para tener un fondo dibujable para obtener el aspecto personalizado que desea.
Ahora, si desea continuar con su edición final y tener un efecto de "halo" alrededor de sus botones, puede usar otro selector personalizado para hacerlo.
fuente