Как я могу изменить изображения на 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;
    }
});