53 votes

Android: Comment créer un MotionEvent?

MotionEvent n'a pas de constructeur, je voulais créer manuellement un MotionEvent dans mon test unitaire, puis comment l'obtenir? Merci.

93voto

rekaszeru Points 12446

Vous devez utiliser l'un de la statique obtain méthodes de l' MotionEvent classe pour créer un nouvel événement.

La façon la plus simple (en dehors de l'emballage d'un nouvel événement à partir d'un existant) est:

static public MotionEvent obtain(long downTime, long eventTime, int action,
        float x, float y, int metaState) {

Les Docs de l'API:

Créer un nouveau MotionEvent, en remplissant un sous-ensemble de la base de la motion valeurs. Ceux qui ne sont pas spécifiés ici sont: l'appareil id (toujours à 0), de la pression et de la taille (toujours 1), x et y de la précision (toujours 1), et edgeFlags (toujours à 0).

Paramètres:

  • downTime Du temps (en ms) lors de la l'utilisateur à l'origine pressée vers le bas pour commencer un flux de position événements. Cette doit être obtenu à partir de SystemClock.uptimeMillis().
  • eventTime Du temps (en ms) lors de la cet événement a été généré. Ce doit être obtenu à partir de SystemClock.uptimeMillis().
  • action Le genre d'action réalisée -- l'un ou l'autre ACTION_DOWN, ACTION_MOVE, ACTION_UPou ACTION_CANCEL.
  • x De la coordonnée X de cet événement.
  • y La coordonnée Y de cet événement.
  • metaState De l'état des meta / les touches de modification qui étaient en vigueur lorsque l'événement a été généré.

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