2012-07-02 19 views
11

mı?değiştirme Varsayılan Renk nasıl belli CheckBox için mavi yeşil onay işaretleri alınan Android onay kutusunun varsayılan rengini değiştiririm Mark

+1

[Bu soru] 'nun bir kopyası gibi görünüyor (http://stackoverflow.com/questions/3491203/how-to-customize-the-color-of-the-checkmark-color-in-android-in-a-dialog -andr). – nTraum

+3

Fark bu sorunun gerçek ve yeni bir cevabı var. arasında –

+0

Olası kopyalar [CheckBox rengini değiştirmek nasıl?] (http://stackoverflow.com/questions/5854047/how-to-change-the-color-of-a-checkbox) – afathman

cevap

22

Maalesef, rengi değiştirmek basit bir özellik değil. Onay işareti bir resimdir, bu nedenle özel bir resim oluşturmanız gerekir. Bunun gibi bir seçici xml dosyası oluşturun bu example

bir göz atın: Bu xml dosyasına kaydetme

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

sizin res\drawables\ klasörde. Eğer seçici xml dosyası "checkbox_selector.xml" adını ediyorum Bu örnekte

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

ve bir star_down.png gerekir ve star.png ediyorum: Ardından düzen dosyası içinde bu gibi onay kutusunu uygulamak senin drawables klasöründe de. Sistem onay kutusu görüntülerini istediğiniz renge değiştirerek ve değiştirilmiş png dosyalarını bir seçicide referans vererek farklı renkli onay kutuları oluşturmak için bu tekniği kullanabilirsiniz.

+1

örnek bağlamak iken iyi bir tanesidir. Linklerin öldüğünü, genel olarak linkler ile ilgili içeriği de linkten yayınlamak isteyeceğinizi belirtmek gerekir. Bu cevap uzun bir süredir etrafta olacağından, eğer bağlantı çürüyse, gelecekte insanlar için işe yaramaz hale gelecekti. Şimdi hala neyin peşinde olduklarına ulaşmalarına yardımcı olacak. – FoamyGuy

+0

İyi nokta. Gelecekte tavsiyeni takip edeceğim. layout_width = "wrap_content" android: layout_height = "wrap_content" app: buttonTint = "@ rengi – HexAndBugs

5

Bu (API düzeyinde 23 itibariyle) buttonTint kullanarak xml yapmak kolaydır:

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

ve

Nicolás belirttiği gibi, daha eski API'ler için appCompatCheckbox v7 kullanarak bunu yapabilirsiniz:

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

Sen AppCompat ve ' ' –

+0

bu durumda devre dışı bırakılan onay kutuları parlak kalıyor, rengi griye çevirmiyor –

+0

@AlexanderTumanin İşaretlenmemiş rengi griye nasıl değiştirilir? –

İlgili konular