Как я могу изменить изображения на ImageButton в Android при использовании OnTouchListener?
У меня есть следующий код, который создает 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 менялось при нажатии. Похоже, что OnTouchListener переопределяет прикосновение и не позволяет изменять изображения. Как только я удаляю OnTouchListener, ImageButton меняет на другое изображение при нажатии. Любые идеи о том, как я могу изменить изображения на ImageButton, все еще используя OnTouchListener? Большое вам спасибо!
Ответы
Ответ 1
Я думаю, что решение прост: удалите return true
из ontouchlistener. Поскольку это блокирует все дальнейшие операции, которые реагируют на касание и ввод. Сделайте также return false
.
Таким образом, это позволит другим действиям также реагировать на прикосновение.
Ответ 2
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;
}
});