2012-07-02 13 views
11

Come si modifica il colore predefinito della casella di controllo Android dai segni di spunta verdi in blu per un determinato CheckBox?Modifica colore predefinito di Android CheckBox Segno di spunta

+1

Sembra essere un duplicato di [questa domanda] (http://stackoverflow.com/questions/3491203/how-to-customize-the-color-of-the-checkmark-color-in-android-in-a-dialog -andr). – nTraum

+3

La differenza è che questa domanda ha una risposta vera e nuova. –

+0

Possibile duplicato di [Come cambiare il colore di un CheckBox?] (Http://stackoverflow.com/questions/5854047/how-to-change-the-color-of-a-checkbox) – afathman

risposta

22

Sfortunatamente, la modifica del colore non è un semplice attributo. Il segno di spunta è un'immagine, quindi devi creare un'immagine personalizzata. Date un'occhiata a questo example

Creare un file XML di selezione come questa:

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

Salva questo file xml nella cartella res\drawables\. Poi all'interno del vostro file di layout applicare al vostro checkBox in questo modo:

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

In questo esempio che ci si nome al selettore di file xml "checkbox_selector.xml" e avresti bisogno di uno star_down.png e star.png nella tua cartella drawables pure. È possibile utilizzare questa tecnica per creare diverse caselle di controllo colorate modificando le immagini della casella di controllo del sistema su qualsiasi colore desiderato e facendo riferimento ai file png modificati in un selettore.

+1

Mentre l'esempio si collega è buono Vale la pena notare che i collegamenti non funzionano, in genere nelle risposte con i collegamenti che si desidera pubblicare anche dal relativo contenuto. Dal momento che questa risposta sarà in giro per molto tempo, sarebbe diventato inutile per le persone in futuro se il collegamento fosse marcito. Ora li aiuterà ancora a ottenere ciò che cercano. – FoamyGuy

+0

Buon punto. Seguirò il tuo consiglio in futuro. – HexAndBugs

5

Questo è facile da fare in XML utilizzando buttonTint (a partire dal livello di API 23):

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

e come Nicolás ha sottolineato, si può fare questo usando appCompatCheckbox v7 per le API più anziani:

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

È possibile farlo a partire dal livello di API 7 utilizzando appcompat e '' –

+0

in questo caso le caselle di controllo disattivate rimangono luminose, non cambiare il colore in grigio –

+0

@AlexanderTumanin come cambiare il colore non selezionato in grigio? –

Problemi correlati