Imagen de casilla de verificación personalizada de Android
¿Existe una manera sencilla de utilizar una imagen personalizada para una casilla de verificación? Estoy buscando duplicar el comportamiento "destacado" de Gmail. Por eso quiero tener una casilla de verificación que, cuando esté marcada, sea una estrella llena. Y cuando no está marcado es una estrella vacía. ¿Tengo que usar una vista de imagen y hacer mi propia lógica yo mismo?
Crea un selector de casilla de verificación dibujable:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/checkbox"
android:state_checked="false"/>
<item android:drawable="@drawable/checkboxselected"
android:state_checked="true"/>
<item android:drawable="@drawable/checkbox"/>
</selector>
Asegúrate de que tu casilla de verificación sea asíandroid:button="@drawable/checkbox_selector"
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@drawable/checkbox_selector"
android:text="CheckBox"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/Black" />
Las casillas de verificación son hijas del Botón, simplemente puede darle a su casilla de verificación una imagen de fondo con varios estados como se describe aquí , en "Estilo de botón":
...y ejemplificado aquí :
Copie btn_check.xml de android-sdk/platforms/android-#/data/res/drawable a la carpeta dibujable de su proyecto y cambie los estados de imagen "activado" y "apagado" a sus imágenes personalizadas.
Entonces tu xml solo necesitaráandroid:button="@drawable/btn_check"
<CheckBox
android:button="@drawable/btn_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
Si desea utilizar diferentes íconos predeterminados de Android, puede usarandroid:button="@android:drawable/..."