私はAndroidスタジオを使用しています。ボタンに2つの画像を追加し、そのうちの1つだけを表示(アクティブ)するには、?私は4つのボタンを持っている私の活動で をし、それらのすべてに私はView.OnTouchListener
を登録していると私はこのようなことでイベントを管理:ボタンに2つの画像を追加するAndroidスタジオ
今、私は以下の技術を使用しています
private class ButtonOnTouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
clickButton(v);
return true;
case MotionEvent.ACTION_UP:
unClickButton(v);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
v.callOnClick();
}
break;
}
// tell the system that we handled the event but a further processing is required
return false;
}
private void clickButton(View button) {
switch (button.getId()) {
case R.id.buttonLogin:
button.setBackgroundResource(R.drawable.activity_main_button_enter_press);
break;
case R.id.buttonRegister:
button.setBackgroundResource(R.drawable.activity_main_button_registration_press);
break;
case R.id.buttonCheckUpdate:
button.setBackgroundResource(R.drawable.activity_main_button_update_check_press);
break;
case R.id.buttonExit:
button.setBackgroundResource(R.drawable.activity_main_button_exit_press);
break;
}
}
private void unClickButton(View button) {
switch (button.getId()) {
case R.id.buttonLogin:
button.setBackgroundResource(R.drawable.activity_main_button_enter_idle);
break;
case R.id.buttonRegister:
button.setBackgroundResource(R.drawable.activity_main_button_registration_idle);
break;
case R.id.buttonCheckUpdate:
button.setBackgroundResource(R.drawable.activity_main_button_update_check_idle);
break;
case R.id.buttonExit:
button.setBackgroundResource(R.drawable.activity_main_button_exit_idle);
break;
}
}
}
だから、これでどのようなボタンがクリックされたかを判断し、適切なリソースを変更するためにイベントでスイッチを作っています。つまり、各アクティビティに対してカスタムクラスを作成し、イベントでスイッチを実行する必要があります。私はグローバルOnTouchListener
作り、ちょうど各ボタンのXMLファイル内の画像を設定し、任意のJavaコードを気にすることはできません
private void ClickButton(View button){
button.setBackgroundResource(button.getResourceImage1);
}
private void unClickButton(View button){
button.setBackgroundResource(button.getResourceImage2);
}
この方法:
は、私は次のようなものを作るでした。
background
/の画像を切り替えようとしましたが、何らかの理由で前景画像を隠すことができませんでした。
奇妙な、それは私がボタンを押すだけで、初めての作品。次回はそれを押しても変わらない。何か案は? –
ああ、申し訳ありませんが、画像を変更する前のコードをすべてクリアしませんでした。それは今働く。これは答えです、ありがとう! :) –
歓迎です。 Enjoy :) –