Как я могу изменить изображения на ImageButton в Android при использовании OnTouchListener? - PullRequest
12 голосов
/ 11 апреля 2010

У меня есть следующий код, который создает 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? Большое спасибо!

Ответы [ 2 ]

33 голосов
/ 28 февраля 2011
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;
    }
});
4 голосов
/ 11 апреля 2010

Я думаю, что решение простое: удалите return true из сенсорного прослушивателя. Так как это блокирует все дальнейшие операции, которые реагируют на прикосновения и ввод. Сделай это return false тоже.

Таким образом, другие действия также будут реагировать на прикосновения.

...