Quiero que la flingdetección de gestos funcione en mi aplicación de Android.
Lo que tengo es un GridLayoutque contiene 9 ImageViews. La fuente se puede encontrar aquí: Diseño de cuadrícula de Romain Guys .
Ese archivo que tomo es de la aplicación Photostream de Romain Guy y solo ha sido ligeramente adaptado.
Para la situación de clic simple, solo necesito establecer el valor onClickListenerde cada uno ImageViewque agregue para que sea el principal activityque implemente View.OnClickListener. Parece infinitamente más complicado implementar algo que reconozca a fling. Supongo que esto se debe a que puede abarcar views.
Si mi actividad se implementa
OnGestureListener, no sé cómo configurarlo como el gestor de gestos paraGridlasImagevistas que agrego.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...Si mi actividad se implementa,
OnTouchListenerentonces no tengo ningúnonFlingmétodo paraoverridehacerlo (tiene dos eventos como parámetros que me permiten determinar si la aventura fue notable).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...Si hago una costumbre
View, comoGestureImageViewesa se extiendeImageView, no sé cómo decirle a la actividad queflingha ocurrido una vista. En cualquier caso, intenté esto y los métodos no se llamaron cuando toqué la pantalla.
Realmente solo necesito un ejemplo concreto de esto trabajando en distintas vistas. ¿Qué, cuándo y cómo debo adjuntar esto listener? Necesito poder detectar clics únicos también.
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
¿Es posible colocar una vista transparente sobre la parte superior de mi pantalla para capturar aventuras?
Si elijo no ver las inflateimágenes de mi hijo desde XML, ¿puedo pasar el GestureDetectorparámetro como constructor a una nueva subclase ImageViewque creo?
Esta es la actividad muy simple para la que estoy tratando de flingque funcione la detección: SelectFilterActivity (Adaptado de photostream) .
He estado mirando estas fuentes:
Hasta ahora nada me ha funcionado y esperaba algunos consejos.
Hay 2 importaciones, tenga cuidado al elegir que ambas son diferentes
