2012-02-17 21 views

答えて

8

Drawable Resources ...ドキュメントのこのビットに州立一覧項を参照してください。

2つの異なるButton xmlファイルを透過的な「デフォルト」状態用に定義し、別のものを「押された」状態用の赤色のボタンで定義することができます。さまざまな状態の描画可能リソースを切り替えるselectorを定義します。

編集:devunwiredのコメントによると、カラー状態リストのリソースは、ドロアブル自体ではなく色を変更する方が適しているでしょう。

+6

+1この回答はほとんど正しいためです。ただし、色の状態リストを使用して描画可能な背景と同様の方法で 'android:textColor'プロパティを変更できることを追加したいと思います:http://developer.android.com/guide/topics/resources/color-list -resource.html – Devunwired

+0

Doh!そのとおり。私はそれへのリンクも含めるべきだった - 私はちょうどそれが手元にあったように他のリンクをブックマークしていた。 – Squonk

1

あなたのコードで行う必要があります。これを試してみてください:

mBtn = ((Button) findViewById(R.id.button1)); 
    mBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      mBtn.setTextColor(Color.RED); 
     } 
    }); 

宣言:

private Button mBtn; 
30

はい、あなたはそのようにそれを行うことができます。

レイアウト/ main_layout.xml:

..... 
    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="bonjour !" 
     android:textColor="@color/button_text_color" 
    /> 
..... 

カラー/ button_text_color.xmlを:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#c0c0c0" android:state_pressed="true"/> 
    <item android:color="#ffffff"/> 
    </selector> 
+1

どこで正確にテキストの色を変更していますか?あなたは背景で遊んでいますが、テキストの色ではありません。 –

+1

'@ drawable/button_text_color'ではなく' @color/button_text_color'です。 – CoolMind