Evento de activación cuando se pulsa el botón en Android

Tengo el siguiente código para Android que funciona bien para reproducir un sonido una vez que se hace clic en un botón:

Button SoundButton2 = (Button)findViewById(R.id.sound2); SoundButton2.setOnClickListener(new OnClickListener() { public void onClick(View v) { mSoundManager.playSound(2); } }); 

Mi problema es que quiero que el sonido se reproduzca inmediatamente al pulsar el botón (tocar hacia abajo), no cuando se suelta (retoque). ¿Alguna idea sobre cómo puedo lograr esto?

Tal vez usando un OnTouchListener ? Supongo que MotionEvent tendrá algunos métodos para registrar un toque en el objeto.

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

Debe hacer esto: b es el botón.

 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; } }); 

import android.view.MotionEvent;

  • Forzar cierre en modo horizontal, pero no en vertical
  • Botón hexagonal con área de toque hexagonal
  • ¿Cómo implementar el botón con doble prensa corta y continua?
  • Buscar diseño con coordenadas x, y
  • ¿Es razonable tener un botón "Atrás" en una aplicación de Android?
  • Cómo cambiar el color del botón y del texto dinámicamente en android
  • Desactivar el botón Atrás en android
  • Cambiar el texto del botón y la acción - desarrollo de Android
  • ListView no responde a los eventos de clics en Android
  • Dos texto en el botón, el título y el subtítulo
  • Cómo la aplicación de Facebook implementa el botón flotante arrastrable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.