J'ai lutté pour obtenir de l' fling
détection de mouvement de travail sur mon application Android aujourd'hui.
J'ai été à la recherche à ces sources;
Rien n'a fonctionné pour moi jusqu'à présent et j'ai été en espérant pour certains pointeurs.
Ce que j'ai est un GridLayout
qui contient 9 ImageView
s. La source peut être trouvé ici: Romain Gars de la Grille de Mise en page.
Ce fichier est de prendre de Romain Guy Photostream application et a été légèrement adapté.
Pour la simple clic situation, j'ai besoin seulement de régler le onClickListener
pour chaque ImageView
- je ajouter de la principale activity
qui implémente View.OnClickListener
. Il semble infiniment plus compliqué à mettre en place quelque chose qui reconnaît un fling
. Je présume que c'est parce qu'il peut s'étendre views
?
-
Si mon activité met en œuvre
OnGestureListener
Je ne sais pas comment le définir comme le geste d'un écouteur pour l'Grid
ouImage
points de vue que je ajouter.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
-
Si mon activité met en œuvre
OnTouchListener
alors je n'ai pasonFling
méthode deoverride
(il a deux événements en tant que paramètres de me permettre pour déterminer si l'aventure a été à noter).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
Si je fais une coutume
View
, commeGestureImageView
qui s'étend au -ImageView
je ne sais pas comment le dire à l'activité que l'fling
a eu lieu à partir de la vue. En tout cas, j'ai essayé et les méthodes n'étaient pas appelé quand j'ai touché l'écran.
J'ai vraiment juste besoin d'un exemple concret de ce travail à travers les points de vue. Quoi, quand et comment dois-je joindre cette listener
? J'ai besoin d'être en mesure de détecter unique clics.
// 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;
}
}
});
Est-il possible de poser une vue transparente sur le haut de mon écran à capturer jette?
Si je choisis de ne pas inflate
mon enfant vues d'images à partir de XML puis-je passer l' GestureDetector
comme un paramètre de constructeur d'une nouvelle sous-classe d' ImageView
que je créer?
C'est très simple activité que je vais essayer d'obtenir l' fling
de détection de travailler pour: SelectFilterActivity (Adapté de photostream).
Tout conseil serait grandement apprécié. Toutes mes excuses si la question est disjoint, veuillez demander des explications, et j'ai ferons un plaisir de vous raconter les détails de ce que j'ai essayé.