2012-01-05 9 views
21

ボタンセレクタではボタンの各状態の背景を定義できますが、ボタンのテキストスタイルを各状態ごとにどのように定義できますか?私の目的は、無効にするとボタンをグレーアウトすることです。だから私は、ボタンの無効状態に灰色の背景を設定しましたが、私はまた、テキストを灰色に淡色にする唯一の方法は、ボタンを無効にすると、色を動的に変更することです...セレクタでボタンのテキストスタイルを設定する方法は?

誰かが助けることができますか?

おかげ

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

描画可能/ 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

あなたがしようとしているあなたのコードを入れてください... –

+0

ちょうど行うか疑問コンパイルエラーなしで​​ @ drawable/btn_defaultをコンパイルします。値が '@ drawable/btn_default'の 'android:background'の指定された名前に一致するリソースが見つかりませんでした。 –

答えて

42

まあ!

Buttonの背景を定義したのと同様に、4つの状態すべてでテキストの色を定義できます。

ファイル名:/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> 

このようなあなたのButtonスタイルにこのファイルを取る:たとえば

<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

うわー、それはクールです!セレクタアイテムの属性「android:color」は文書化されていません!しかし、それは実際に動作します! – Lcsky

+1

はこちらのドキュメントです http://developer.android.com/guide/topics/resources/color-list-resource.html – AdrianoCelentano

+0

ありがとうございます。ここに指定されたテキストの色 - >があります)。私はtextColorにも通常のカラーセレクタ(アンドロイド:color属性付き)を使用できることは知らなかったし、カスタム背景とカスタムtextColorを同時に使用することもできます。私はグーグルでインターネットを使って30分ほどテキストを使用して、あなたがカスタムの背景を持っているとき(私はリップルの背景を持っている)ありがとう! – Metallica

関連する問題