Событие триггера, когда кнопка нажата в Android

У меня есть следующий код для Android, который отлично работает, чтобы воспроизводить звук после нажатия кнопки:

Button SoundButton2 = (Button)findViewById(R.id.sound2);
        SoundButton2.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        mSoundManager.playSound(2);

    }
});

Моя проблема в том, что я хочу, чтобы звук воспроизводился сразу же после нажатия кнопки (касание вниз), а не при отпускании (коснитесь). Любые идеи о том, как я могу это сделать?

Ответ 1

Может быть, с помощью OnTouchListener? Я думаю, MotionEvent будет иметь некоторые методы для регистрации касания объекта.

   button.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
     // TODO Auto-generated method stub
     return false;
    }
   }))

Ответ 2

Вы должны сделать это: b - кнопка.

b.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN ) {
                    mSoundManager.playSound(2);
                    return true;
                }

                return false;
            }
        });

Ответ 3

import android.view.MotionEvent;