2016-05-27 4 views
2

Button b私は背景色が黒で作成しました。私がそれをクリックすると、その上に指を置いている間だけ色が緑色に変わります。つまり、私はそれに焦点を当てます。アンドロイドスタジオのボタンタップのボタンの色を変更するには

+0

あなたが行った作業を提供し、問題のある場所を教えてください。 – Flummox

+0

これを参照してください:http://stackoverflow.com/a/1726352/5250273 –

+1

ここで明確に答えられているのと同じ質問がありますhttp://stackoverflow.com/questions/3882064/how-to-change-color-of-button-in- android-when-clicked – fReeTaSte

答えて

5

あなたのボタンでセレクタを使用。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@color/green"/> <!-- pressed --> 
    <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused --> 
    <item android:drawable="@color/black"/> <!-- default --> 
</selector> 
0

ACTION_UPは - >押さジェスチャが終了した、動きが 最終リリース位置ならびに最後ダウン 以降の任意の中間点又は移動イベントを含んでいます。

ACTION_DOWN - 押されたジェスチャーが開始されました。動きには の開始位置が含まれています。

ボタンにOnTouchListenerを設定する必要があります。

button.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      btn.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
     } else if (event.getAction() == MotionEvent.ACTION_UP) { 
      btn.setBackgroundColor(getResources().getColor(R.color.white)); 
     } 
    } 
}; 

あなたは、ユーザーがボタン(ACTION_DOWN)を押したときに聴くことonTouchListenerを使用する必要がチェックmotion events

+0

getColor()は使用できません。btn.setBackgroundColor(ContextCompat.getColor(getActivity()、R.color.colorAccent)); @ Diptangsu Goswami –

2

とユーザー解放する(ACTION_UP)

b.setOnTouchListener(new OnTouchListener() { 

public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_UP) { 
     // reset the background color here 
     b.setBackgroundColor(Color.GREEN); 

    }else{ 
     // Change the background color here 
     b.setBackgroundColor(Color.RED); 

    } 
    return false; 
    } 
}); 
+0

このようなタッチイベントを登録するのではなく、異なった州のために複数の色/ drawableを使用してセレクタを描画可能にする。 – seema

0

このXML描画可能を作ると、ボタンの背景として使用します。ここでは

<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" android:layout_width="fill_parent" 
    android:gravity="center" android:focusable="true" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:background="@android:drawable/list_selector_background" /> 

はlist_selector_background XMLのコードです。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@color/green"/> 
<item android:drawable="@color/black"/> 
</selector> 
関連する問題