ImageButtonを作成し、クリックするとサウンドを再生する次のコードがあります。
ImageButton SoundButton1 = (ImageButton)findViewById(R.id.sound1);
SoundButton1.setImageResource(R.drawable.my_button);
SoundButton1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
mSoundManager.playSound(1);
return true;
}
return false;
}
});
問題は、ImageButtonを押したときにImageButtonの画像を変更したいということです。 OnTouchListenerはタッチをオーバーライドし、画像の変更を許可していないようです。 OnTouchListenerを削除するとすぐに、ImageButtonを押すと別の画像に切り替わります。 OnTouchListenerを使用しながらImageButtonで画像を変更する方法についてのアイデアはありますか?どうもありがとうございました!
解決策は簡単だと思います。ontouchlistenerからreturn true
を削除します。それは、タッチと入力に応答するそれ以降のすべての操作をブロックするためです。 return false
にもしてください。
このようにして、他のアクションもタッチに応答できるようになります。
SoundButton1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
mSoundManager.playSound(1);
btnmode.setImageResource(R.drawable.modeitempressed);
}
elseif (event.getAction() == MotionEvent.ACTION_UP ) {
btnmode.setImageResource(R.drawable.modeitemnormal);
}
return false;
}
});