2012-07-02 9 views
11

¿Cómo cambio el color predeterminado de la casilla de verificación de Android de las marcas de verificación verdes a azul para una casilla de verificación en particular?Cambiar el color predeterminado de la casilla de verificación de Android CheckBox

+1

Parece ser un duplicado de [esta pregunta] (http://stackoverflow.com/questions/3491203/how-to-customize-the-color-of-the-checkmark-color-in-android-in-a-dialog -andr). – nTraum

+3

La diferencia es que esta pregunta tiene una respuesta real y nueva. –

+0

Posible duplicado de [¿Cómo cambiar el color de un CheckBox?] (Http://stackoverflow.com/questions/5854047/how-to-change-the-color-of-a-checkbox) – afathman

Respuesta

22

Desafortunadamente, cambiar el color no es un atributo simple. La marca de verificación es una imagen, por lo que debe crear una imagen personalizada. Echar un vistazo a este example

Crear un archivo XML de selección como este:

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

guardar este archivo XML en la carpeta de res\drawables\. A continuación, dentro de su archivo de diseño de aplicarlo a su checkBox así:

<CheckBox 
    android:text="Custom CheckBox" 
    android:button="@drawable/checkbox_selector" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

En este ejemplo que le nombre a su selector de archivos xml "checkbox_selector.xml" y se necesitaría una star_down.png y star.png en tu carpeta de drawables también. Puede utilizar esta técnica para crear casillas de verificación de diferentes colores alterando las imágenes de casilla de verificación del sistema al color que desee y haciendo referencia a los archivos png alterados en un selector.

+1

Mientras que el ejemplo que enlaza es bueno Vale la pena señalar que los enlaces se agotan, generalmente en las respuestas con enlaces, también querrás publicar el contenido relevante del enlace. Dado que esta respuesta va a seguir existiendo durante mucho tiempo, en el futuro habría sido inútil para las personas si el enlace se hubiese podrido. Ahora aún les ayudará a lograr lo que buscan. – FoamyGuy

+0

Buen punto. Seguiré tu consejo en el futuro. – HexAndBugs

5

Esto es fácil de hacer en XML usando buttonTint (a partir del nivel de la API 23):

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:buttonTint="@color/COLOR_HERE" /> 

y como Nicolás señaló, puede hacerlo utilizando appCompatCheckbox v7 para las API de más edad:

<android.support.v7.widget.AppCompatCheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:buttonTint="@color/COLOR_HERE" /> 
+2

Usted puede hacer esto a partir del nivel de API 7 usando appcompat y '' –

+0

en este caso, las casillas de verificación desactivadas permanecen brillantes, no cambie el color a gris –

+0

@AlexanderTumanin cómo cambiar el color no seleccionado a gris? –

Cuestiones relacionadas