Imagen de casilla de verificación personalizada de Android

Resuelto Falmarri asked hace 54 años • 12 respuestas

¿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?

Falmarri avatar Jan 01 '70 08:01 Falmarri
Aceptado

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" />
Mohamed Hisham Ibn Hanifa avatar Jul 15 '2013 05:07 Mohamed Hisham Ibn Hanifa

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í :

Jean avatar Oct 19 '2010 06:10 Jean

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/..."

WOUNDEDStevenJones avatar Aug 01 '2012 20:08 WOUNDEDStevenJones