2 votes

Événements et gestes tactiles dans la vue en surface

Quelqu'un peut-il m'indiquer des cours ou me suggérer quelque chose pour le cas suivant ?

J'ai une SurfaceView qui a une image de fond, sur laquelle je souhaite peindre d'autres bitmaps. J'aimerais pouvoir effectuer les opérations suivantes :

  • Lors d'une simple pression, un nouveau bitmap est ajouté par-dessus l'arrière-plan,
  • sur le double tap bitmap à la position donnée est supprimé,
  • sur tap&move (comme drag&drop) le bitmap se déplace,
  • en appuyant et en déplaçant la vue de surface défile,
  • sur la vue de surface pinch out/pinch in est mis à l'échelle en conséquence.

Est-ce que cela ne peut se faire qu'avec GestureRezognizer ? Si non, comment gérer tous ces cas ?

1voto

Jack Stafford Points 66

Pour gérer l'entrée tactile, remplacez onTouchEvent dans votre classe qui étend SurfaceView pour gérer un MotionEvent. Voici un exemple de code qui obtient la position de l'écran lorsqu'un utilisateur le touche pour la première fois.

@Override    
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        touchX = event.getX();
        touchY = event.getY();
    }
    return true;
}

Pour plus d'informations sur l'objet MotionEvent, consultez le site Web de la Commission européenne. Site web des développeurs Android .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X