Android ToggleButton
Siguiendo este artículo fui capaz de crear un botón de conmutación que está hecho de imágenes. Mi toggle no tiene ningún texto, sólo imágenes on / off.
Cuando mi botón de conmutación se crea está siendo estirado y pierde sus proporciones, ¿cómo puedo hacer que retenga su tamaño original?
- Android: hacer una vista personalizada desplazable
- Cómo implementar un deslizamiento de una vista (como feed de noticias en la aplicación de Facebook)
- es view.setOnTouchListener (listener) multicast? ¿como funciona?
- Android - view.Surface OutOfResourcesException
- Imagen de círculo con texto
Estas son las imágenes que estoy usando:
En http://s14.postimage.org/o4zh0nqzh/toggle_on_9.png
Off http://s17.postimage.org/mivfu6mbv/toggle_off_9.png
El código:
Main.xml:
<ToggleButton android:id="@+id/changeNumerals" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:checked="true" android:background="@drawable/toggle_bg" android:textOn="" android:textOff="" />
Drawable / toggle.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false" android:drawable="@drawable/toggle_off" /> <item android:state_checked="true" android:drawable="@drawable/toggle_on" /> </selector>
Drawable / toggle_bg.xml:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+android:id/background" android:drawable="@android:color/transparent" /> <item android:id="@+android:id/toggle" android:drawable="@drawable/toggle" /> </layer-list>
- Android infla la vista utilizando un objeto de vista existente
- Aplicaciones de Fractal en Android
- Android ver el relleno o los márgenes por defecto
- Androide. Buscar vista por etiqueta
- Método para anular cuando el diseño se destruye en Android
- Android: ¿cuál es la diferencia entre los estados enfocado, habilitado, presionado y seleccionado?
- Android: ViewPager y HorizontalScrollVIew
- Mostrar la vista desplegada en Android Studio en vista previa
Las dimensiones son "hardcoded" pero van a escala con el tamaño de su pantalla.
Así que el xml podría verse así:
android:layout_width="64dp" android:layout_height="24dp"
La documentación oficial de dps está aquí
Pruebe los siguientes atributos para <ToggleButton>
android:background="@android:color/transparent" android:button="@drawable/toggle_bg"
Deberia de funcionar. Buena suerte 🙂
Para soportar versiones de GINGERBREAD hasta las actuales, terminé usando:
<ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/filterPhotos" android:checked="true" android:textOn="" android:textOff="" android:paddingLeft="5dp" android:drawableRight="@drawable/toggle_filter_photos" android:background="@null"/>
Y el drawable toggle_filter_photos.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/picture_filter_icons" android:state_checked="true" /> <item android:drawable="@drawable/picture_inactive_filter_icons" /> </selector>
Las otras soluciones anteriores no funcionaron bien para GINGERBREAD y más nuevas ya que los iconos no se mostrarían en absoluto (con el android:button
GINGERBREAD) o la relación de aspecto se perdió (con android:background
en JELLY_BEAN_MR1 (4.2.2) ).
- Android: ¿Cómo podemos backport withEndAction a versiones anteriores, con ayuda de Nueve Androides Antiguos
- Zoom sobre la ruta específica google map