Cómo cambiar el color de un CheckBox en Android
¿Cómo cambio el CheckBox
color predeterminado en Android?
Por defecto el CheckBox
color es verde y quiero cambiar este color.
Si no es posible, ¿por favor dígame cómo hacer una personalización CheckBox
?
Puede cambiar el color directamente en XML. Uso buttonTint
para 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 v7
para 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" />
Si tienes minSdkVersion
más de 21 años, utiliza android:buttonTint
el 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 buttonTint
atributo:
<CheckBox
...
app:buttonTint="@color/tint_color" />
En este caso, si desea crear una subclase de a, CheckBox
no olvide utilizarla AppCompatCheckBox
en su lugar.
RESPUESTA ANTERIOR:
Puedes cambiar CheckBox
el dibujable usando android:button="@drawable/your_check_drawable"
el atributo.
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.
Úselo buttonTint
para 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>
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));