Necesito obtener la posición de inicio táctil (X, Y), la posición de movimiento táctil y la posición final táctil de la pantalla en Android.
92
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
Los tres casos son para que pueda reaccionar a diferentes tipos de eventos, en este ejemplo tocando o arrastrando o levantando el dedo nuevamente.
Respuesta suplementaria
Dado un
OnTouchListener
establecido en alguna vista:
Esto le da las coordenadas del evento táctil en relación con la vista que tiene asignado el oyente táctil. La esquina superior izquierda de la vista es
(0, 0)
. Si mueve el dedo por encima de la vista,y
será negativo. Si mueve el dedo a la izquierda de la vista,x
será negativo.Si desea las coordenadas relativas a la esquina superior izquierda de la pantalla del dispositivo, utilice los valores sin procesar.
Relacionado
fuente
return false
contrario consumirá el toque.getRawX()
ygetRawY()
debe devolver las coordenadas absolutas de la posición táctil en cualquier vista a la que se agregue el oyente. Pero tiene razón, si hay otra vista encima que regresatrue
, no se notificarán los eventos táctiles de las vistas inferiores.getX()
y funcionogetY()
bien (no es necesariogetRawX/Y()
).onInterceptTouchEvent
y luego regresarfalse
para que el evento se procese normalmente.fuente
Aquí está el estilo Koltin, lo uso en mi proyecto y funciona muy bien:
fuente