Cómo cambiar el color de un CheckBox en Android

Resuelto Piyush asked hace 54 años • 28 respuestas

¿Cómo cambio el CheckBoxcolor predeterminado en Android?
Por defecto el CheckBoxcolor es verde y quiero cambiar este color.
Si no es posible, ¿por favor dígame cómo hacer una personalización CheckBox?

Piyush avatar Jan 01 '70 08:01 Piyush
Aceptado

Puede cambiar el color directamente en XML. Uso buttonTintpara la caja: (a partir del nivel API 23)

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

También puedes hacer esto usando appCompatCheckbox v7para niveles de API más antiguos:

<android.support.v7.widget.AppCompatCheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:buttonTint="@color/COLOR_HERE" /> 
afathman avatar Nov 20 '2015 19:11 afathman

Si tienes minSdkVersionmás de 21 años, utiliza android:buttonTintel atributo para actualizar el color de una casilla de verificación:

<CheckBox
  ...
  android:buttonTint="@color/tint_color" />

En proyectos que usan la biblioteca AppCompat y admiten versiones de Android inferiores a 21, puede usar una versión compatible del buttonTintatributo:

<CheckBox
  ...
  app:buttonTint="@color/tint_color" />

En este caso, si desea crear una subclase de a, CheckBoxno olvide utilizarla AppCompatCheckBoxen su lugar.

RESPUESTA ANTERIOR:

Puedes cambiar CheckBoxel dibujable usando android:button="@drawable/your_check_drawable"el atributo.

Michael avatar May 02 '2011 06:05 Michael

puede configurar el tema de Android de la casilla de verificación para obtener el color que desea en su style.xml agregar:

<style name="checkBoxStyle" parent="Base.Theme.AppCompat">
    <item name="colorAccent">CHECKEDHIGHLIGHTCOLOR</item>
    <item name="android:textColorSecondary">UNCHECKEDCOLOR</item>
</style>

luego en su archivo de diseño:

<CheckBox
     android:theme="@style/checkBoxStyle"
     android:id="@+id/chooseItemCheckBox"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>

A diferencia del uso android:buttonTint="@color/CHECK_COLOR"de este método, funciona bajo Api 23.

Amr El Aswar avatar Apr 14 '2016 23:04 Amr El Aswar

Úselo buttonTintpara cambiar el color del botón y el selector de color para la versión API superior a 21.

<android.support.v7.widget.AppCompatCheckBox
                android:id="@+id/check"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:buttonTint="@color/checkbox_filter_tint"
                tools:targetApi="21"/>

res/colores/checkbox_filter_tint.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/light_gray_checkbox"
          android:state_checked="false"/>
    <item android:color="@color/common_red"
          android:state_checked="true"/>
</selector>
D. Sergeev avatar Sep 27 '2017 13:09 D. Sergeev

Versión programática:

int [][] states = {{android.R.attr.state_checked}, {}};
int [] colors = {color_for_state_checked, color_for_state_normal}
CompoundButtonCompat.setButtonTintList(checkbox, new ColorStateList(states, colors));
mbonnin avatar Sep 07 '2016 17:09 mbonnin