studio programacion herramientas crear con avanzado aplicaciones android events

programacion - Android: ¿Cómo crear un MotionEvent?



manual de android en pdf (2)

MotionEvent no obtiene un constructor, quería crear un MotionEvent de forma manual en mi prueba unitaria, ¿cómo conseguirlo? Gracias.


Respuesta suplementaria

Aquí hay un ejemplo que ilustra la respuesta aceptada:

// get the coordinates of the view int[] coordinates = new int[2]; myView.getLocationOnScreen(coordinates); // MotionEvent parameters long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis(); int action = MotionEvent.ACTION_DOWN; int x = coordinates[0]; int y = coordinates[1]; int metaState = 0; // dispatch the event MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, metaState); myView.dispatchTouchEvent(event);

Notas

  • Otros meta estados incluyen cosas como KeyEvent.META_SHIFT_ON , etc.
  • Gracias a esta respuesta por su ayuda con el ejemplo.

Debe usar uno de los métodos de obtain estática de la clase MotionEvent para crear un nuevo evento.

La forma más sencilla (además de envolver un evento nuevo a partir de uno existente) es:

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

API Docs :

Crea un nuevo MotionEvent, completando un subconjunto de los valores de movimiento básicos. Los que no se especifican aquí son: ID del dispositivo (siempre 0), presión y tamaño (siempre 1), x e y precisión (siempre 1) y edgeFlags (siempre 0).

Parámetros :

  • downTime El tiempo (en ms) cuando el usuario presionó inicialmente para iniciar una secuencia de eventos de posición. Esto se debe obtener de SystemClock.uptimeMillis ().
  • eventTime El tiempo (en ms) en que se generó este evento específico. Esto se debe obtener de SystemClock.uptimeMillis() .
  • action El tipo de acción que se realiza: una de ACTION_DOWN , ACTION_MOVE , ACTION_UP o ACTION_CANCEL .
  • x La coordenada X de este evento.
  • y La coordenada Y de este evento.
  • metaState El estado de las teclas de meta / modificador que estaban en vigor cuando se generó el evento.

Enlace a API Docs