Quiero que la fling
detección de gestos funcione en mi aplicación de Android.
Lo que tengo es un GridLayout
que contiene 9 ImageView
s. 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 onClickListener
de cada uno ImageView
que agregue para que sea el principal activity
que 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 paraGrid
lasImage
vistas que agrego.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
Si mi actividad se implementa,
OnTouchListener
entonces no tengo ningúnonFling
método paraoverride
hacerlo (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
, comoGestureImageView
esa se extiendeImageView
, no sé cómo decirle a la actividad quefling
ha 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 inflate
imágenes de mi hijo desde XML, ¿puedo pasar el GestureDetector
parámetro como constructor a una nueva subclase ImageView
que creo?
Esta es la actividad muy simple para la que estoy tratando de fling
que funcione la detección: SelectFilterActivity (Adaptado de photostream) .
He estado mirando estas fuentes:
Hasta ahora nada me ha funcionado y esperaba algunos consejos.