2012-01-05 22 views
21

Düğme seçiciler, düğmenin her durumu için bir arka plan tanımlamaya izin verir, ancak düğmenin metin stili her durum için nasıl tanımlanabilir? Amacım devre dışı bırakıldığında bir düğme gridir. Bu yüzden düğmenin devre dışı durumuna bir arka plan belirledim, ancak metni de griye çevirmeyi bulmamın tek yolu düğmeyi devre dışı bıraktığımda dinamik olarak rengini değiştirmek ...Seçicilerdeki bir düğmenin metin stili nasıl ayarlanır?

Herkes yardım edebilir mi?

Teşekkür

<style name="srp_button" parent="@android:style/Widget.Button"> 
    <item name="android:background">@drawable/btn_default</item> 
    <item name="android:textColor">#ffffff</item> <!-- How to specify different color for different state? --> 
    <!-- more stuff --> 
</style> 

çekilebilir/btn_default.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_enabled="true"><shape> 
      <solid android:color="@color/pink" /> 
      <corners android:radius="6dp" /> 
     </shape></item> 
    <item><shape> 
      <solid android:color="#000000" /> 
      <corners android:radius="6dp" /> 
     </shape></item> 

</selector> 
+0

Eğer denedi sizin Kodunu koymak Lütfen ... –

+0

Sadece merak yapmak Örneğin Herhangi bir derleme hatası olmadan ​​@ drawable/btn_default derlersiniz. Elimde, '@ drawable/btn_default' değeriyle 'android: background' adında verilen ada sahip bir kaynak bulunamadı. –

cevap

42

Eh!

Button için tanımladığınız arka planla aynı şekilde tüm 4 durum için Metin rengini tanımlayabilirsiniz.

dosya adı: /res/color/text_color.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:color="#440000"/> 
    <item android:state_focused="true" android:color="#004400"/> 
    <item android:state_pressed="true" android:color="#000044"/> 
    <item android:color="#444"/> 
</selector> 

bu gibi Button Stil içine bu dosyayı atın:

<style name="srp_button" parent="@android:style/Widget.Button"> 
    <item name="android:background">@drawable/btn_default</item> 
    <item name="android:textColor">@color/text_color</item> <!-- Here is specified text color --> 
</style> 
+1

Vay, güzel! Bir seçicinin öğesindeki "android: color" özniteliği belgesiz! Ama gerçekten işe yarıyor! – Lcsky

+1

burada belge için http://developer.android.com/guide/topics/resources/color-list-resource.html – AdrianoCelentano

+0

textColor ve özellikle senin yanında yorumunuzu söylediğin için çok teşekkür ederim (! - Burada belirtilen metin rengi ->). Ben de textColor için normal bir renk seçici (android: renk öznitelikleri) kullanabilirsiniz ve aynı zamanda özel arka plan ve özel textColor kullanabilirsiniz. Özel bir arka plana sahip olduğumda (ripple arka planım var) engelli durumdaki metin rengini nasıl kullanacağım hakkında internette yarım saat boyunca internette okumaya ve okumaya başladım, bundan başka bir şey bulamadım! Teşekkürler! – Metallica

İlgili konular