Reconocimiento de golpecitos y otros gestos comunes
Los gestos requieren de dos pasos para el proceso:
1.Reúna los datos del movimiento: comienza cuando el usuario toca la pantalla, activa la devolución onTouchEvent () con los datos de movimiento enviados en un objeto MotionEvent.
2.Analizar los datos para determinar si coincide con un gesto conocido: analizar los datos, más fácil con la clase GestureDetector, que detecta los siguientes gestos:
●OnTouchEvent ()
●OnDown()
●OnFling ()
●OnLongPress ()
●OnScroll ()
●OnShowPress ()
●OnDoubleTap ()
●OnDoubleTapEvent ()
●OnSingleTapConfirmed ()
Finalmente podremos observar el GestureDetector.SimpleOnGestureListener para reconocer los gestos de toque y doble toque.
Preparándose
Crearemos un nuevo proyecto en Android Studio se llamara: CommonGestureDetector. Utilixando nuevamente opciones predeterminadas de Teléfono y Tableta y seleccione Actividad vacía cuando se le solicite el Tipo de actividad.
Cómo hacerlo
Seguidamente se utilizara la actividad en sí para detectar gestos, por lo cual no es necesario agregar ninguna vista al diseño. Abra MainActivity.java y siga estos pasos:
1.Agregue la siguiente variable:
Private GestureDetectorCompat mGestureDetector;
2.Agregue la siguiente clase GestureListener dentro de la clase MainActivity:
private classGestureListener extends
GestureDetector.SimpleOnGestureListener {
@Override
public booleanonSingleTapConfirmed(MotionEvent e) {
Toast.makeText(MainActivity.this,"onSingleTapConfirmed",Toast.LENGTH_SHORT).show();
return super.onSingleTapConfirmed(e); }
@Override
public booleanonDoubleTap(MotionEvent e) {
Toast.makeText(MainActivity.this, "onDoubleTap",Toast.LENGTH_SHORT).show();
return super.onDoubleTap(e); }
}
3.Anule el onTouchEvent () de la siguiente manera:
public booleanonTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
4.Por último, agregue la siguiente línea de código a onCreate ():
public booleanonTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
5.Ejecute esta aplicación en un dispositivo o emulador.
Cómo funciona
Para la utilización de GestureDetectorCompat, que definiremos que es una Biblioteca de Soporte, en dispositivos en los que su ejecución Android 1.6 y versiones posteriores. Continuando con la detección de gestos es un proceso de dos pasos. Para iniciar con el movimiento, gesto, dato, se rastreará el movimiento con el evento táctil.
Cada vez que se llama al onTouchEvent (), compartimos esta información con El GestureDetector continuando con el manejo del segundo paso, analizando los datos. Una vez que se ha detectado un gesto, se realiza la devolución apropiada. En este caso observaremos el manejo de gestos simples como los dobles.