Как изменить изображения на 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? Большое спасибо!

Я думаю, что решение прост: удалите return true из ontouchlistener. Так как это блокирует все дальнейшие операции, которые реагируют на касание и ввод. Заставьте его также 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; } }); 
Intereting Posts