2012-10-03 18 views
15

Android 4.0 kullanan bir uygulama oluşturuyorum. Bir anahtardaki metnin metin rengini değiştirmek mümkün olup olmadığını merak ediyorum.Android'de anahtarın textcolor'u nasıl değiştirilir

Metin rengini ayarlamayı denedim, ancak çalışmaz.

Herhangi bir fikrin var mı?

Şimdiden teşekkürler!

+1

kodunuzu sonrası .. –

+0

hiçbir özel kod var Bu, kimliğiyle bulunan mizanpajtaki bir anahtardır. Ve kodda switch.setTextColor'u (Color.WHITE) ayarladım; –

cevap

57

Sen mesela android:switchTextAppearance niteliğini, kullanmalıdır:

<style name="SwitchTextAppearance" parent="@android:style/TextAppearance.Holo.Small"> 
    <item name="android:textColor">@color/my_switch_color</item> 
</style> 

da ayrıca stilleri yukarıda kullanarak, kodda yapabilirsiniz::

mySwitch.setSwitchTextAppearance(getActivity(), R.style.SwitchTextAppearance); 

android:switchTextAppearance="@style/SwitchTextAppearance" 

ve stillerde

... ve'ye gelince -ve Switch sizin SwitchTextAppearance tarzı bir textColor

Eğer setSwitchTextAppearance yılında Switch kaynak koduna kontrol edebilirsiniz sağlamaması halinde bu renk kullanılacaktır:

ColorStateList colors; 
    int ts; 

    colors = appearance.getColorStateList(com.android.internal.R.styleable. 
      TextAppearance_textColor); 
    if (colors != null) { 
     mTextColors = colors; 
    } else { 
     // If no color set in TextAppearance, default to the view's textColor 
     mTextColors = getTextColors(); 
    } 

    ts = appearance.getDimensionPixelSize(com.android.internal.R.styleable. 
      TextAppearance_textSize, 0); 
    if (ts != 0) { 
     if (ts != mTextPaint.getTextSize()) { 
      mTextPaint.setTextSize(ts); 
      requestLayout(); 
     } 
    } 
+1

Neden acaba Tüm bu bloat yerine, normalde setTextColor'un çalışmasını sağlıyorlar. –

0

TextView.setTextColor(), xml dosyasındaki kaynak kimliğini değil, rengi (örn. 0xFFF5DC49) temsil eden bir int alır. Bir Bağlam örneğin gerekir Bir etkinliğin

textView1.setTextColor(getResources().getColor(R.color.mycolor))

dışarıdan: Bir aktivitede gibi bir şey yapabilirsiniz. daha this

+1

Merhaba, öncelikle cevabınız için teşekkürler! Bu aradığım cevap değil, ben de metin görüntülemeleri ve editTexts için çalışıyorum. Ama bir anahtar için ihtiyacım var ve emin değilim .. –

+1

Aslında 'setTextColor' '' Switch' için kullanılmıyorsa, 'android' için sağlanan stil: switchTextAppearance' bir textColor tanımlamıyorsa – imbryk

0

bakın

textView1.setTextColor(context.getResources().getColor(R.color.mycolor))

Ben size uygulamanız için kullandığınız temaya bakmak zorunda düşünüyorum. Çünkü anahtarın rengi temanın sorumluluğundadır, afaik. Bu yüzden bir temanın ayarlarını nasıl değiştirebileceğinizi öğrenmenizi öneririm. Ya da yeni renkler ile özel bir tema oluşturabilirsiniz.

İlgili konular