Je veux capturer la direction du mouvement du doigt sur le téléphone tactile Android. Si un utilisateur glisse son doigt dans la direction haut/bas/gauche/droite, je veux capturer cette direction. Comment puis-je trouver ça? Merci.Comment capturer la direction du mouvement des doigts dans le téléphone android?
Répondre
Mettre en oeuvre onTouchEvent(), et calculer dx et dy par où l'utilisateur appuie vers le bas et se soulève. Vous pouvez utiliser ces valeurs pour déterminer la direction du déplacement.
float x1, x2, y1, y2, dx, dy;
String direction;
switch(event.getAction()) {
case(MotionEvent.ACTION_DOWN):
x1 = event.getX();
y1 = event.getY();
break;
case(MotionEvent.ACTION_UP): {
x2 = event.getX();
y2 = event.getY();
dx = x2-x1;
dy = y2-y1;
// Use dx and dy to determine the direction of the move
if(Math.abs(dx) > Math.abs(dy)) {
if(dx>0)
direction = "right";
else
direction = "left";
} else {
if(dy>0)
direction = "down";
else
direction = "up";
}
}
}
Votre meilleur pari serait de faire face aux MotionEvent que vous obtenez d'un rappel View.OnTouchListener(). Les événements de mouvement gardent une trace de la façon dont vous êtes en train d'interagir avec la vue par sa propriété d'action.
J'imagine que vous pouvez calculer dans quelle direction quelqu'un glisse son doigt en examinant la propriété d'action de MotionEvents et les valeurs x/y de l'endroit où l'événement de mouvement a eu lieu.
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
oldX= event.getX();
oldY= event.getY();
break;
case MotionEvent.ACTION_MOVE:
int newX = motionEvent.getX();
int newY = motionEvent.getY();
int deltaX = oldX - newX;
int deltaY = oldY - newY;
if(Math.abs(deltaY)>Math.abs(deltaX))
//Motion in Y direction.
else
// Motion in X direction.
break;
}
Il y a beaucoup d'autres méthodes disponibles sur l'objet MotionEvent pour une utilisation aussi bien: http://developer.android.com/reference/android/view/MotionEvent.html
la vérification de fond doit être 'si (Math.abs (deltaY)> Math.abs (deltaX))' – tibbi
@tibbi fixe, merci! –
- 1. comment trouver la direction du mouvement de l'appareil?
- 2. Pygame: Sprite changeant en raison de la direction du mouvement
- 3. Des applications de dessin au bout des doigts sur Android?
- 4. Détecter le mouvement sur l'axe en android
- 5. Capteur de direction Android
- 6. Comment obtenir la direction de la boussole
- 7. Comment capturer un numéro de téléphone
- 8. Android comment créer un fichier dans la mémoire du téléphone
- 9. Android: balle en mouvement par le toucher
- 10. Téléphone pente Android
- 11. capturer l'image dans android?
- 12. Duplication des mouvements des doigts Objectif C
- 13. Iphone Mouvement dans une direction particulière avec une vitesse particulière
- 14. C#: contrôle du téléphone Android
- 15. Comment capturer la vidéo d'un téléphone portable Windows?
- 16. Comment déterminer si un téléphone Android peut capturer de la vidéo?
- 17. Comment capturer les modifications d'une CheckBoxPreference dans le développement android?
- 18. Événements de mouvement dans android
- 19. localiser une adresse dans le téléphone android
- 20. création d'un dossier dans le téléphone android
- 21. Capture des clics sur les boutons natifs dans le téléphone Android en javascript
- 22. Obtention de la direction générale du mouvement en utilisant OpenCV et Python
- 23. Android: Activation programmée du numéro de téléphone
- 24. Android SDK - Référence l'application galerie du téléphone?
- 25. comment obtenir la version Android du firmware installé dans le téléphone?
- 26. Configuration du téléphone android avec eclipse
- 27. Android .. Comment télécharger des données depuis le téléphone Android vers la base de données à distance?
- 28. Obtenir le nom d'utilisateur android stocké dans le téléphone
- 29. Déterminer le nord en utilisant le téléphone android
- 30. capturer le numéro du texte html
Bonne réponse, mais j'ai trouvé quelques fautes de frappe et j'ai dû amener certaines de ces variables à une plus grande portée pour les rendre mutables depuis l'intérieur du commutateur. –
Pour le deuxième cas de commutation, j'ai utilisé ACTION_MOVE au lieu de ACTION_UP, car dans un aperçu ViewPager est appelé sans ACTION_UP. J'ai un ScrollView w/orientation verticale tenue par un ViewGroup et c'est une page ViewPager. Glisser sur ScrollView change la page au lieu de ne pas répondre. cas MotionEvent.ACTION_MOVE: float dx = événement.getX() - x1; float dy = événement.getY() - y1; si (Math.abs (dx) <= Math.abs (dy)) {// défilement vertical v.getParent(). RequestDisallowInterceptTouchEvent (true); } else {v.getParent(). RequestDisallowInterceptTouchEvent (false);} pause; –
ScrollView w/orientation verticale imbriqué dans un autre ScrollView, détenu par un ViewGroup I signifiait. –