Estoy capturando un MotionEvent
para un clic largo en un Android SurfaceView
usando un GestureListener
. Entonces necesito traducir las coordenadas del MotionEvent
a las coordenadas del lienzo, desde donde puedo generar coordenadas de mapa personalizadas (no Google Maps).¿Cómo traduzco correctamente las coordenadas de píxeles a las coordenadas del lienzo en Android?
De lo que he leído, me tomo la dada MotionEvent e
, e.getX()
y e.getY()
get coordenadas de píxeles. ¿Cómo puedo convertir estas coordenadas a las coordenadas del lienzo SurfaceView
?
Aquí es mi GestureListener
para escuchar por los clics largos:
/**
* Overrides touch gestures not handled by the default touch listener
*/
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
Point p = new Point();
p.x = (int) e.getX();
p.y = (int) e.getY();
//TODO translate p to canvas coordinates
}
}
Gracias de antemano!
Editar: ¿Esto tiene que ver con el tamaño de la pantalla/resolución/profundidad y el lienzo 'Rect object?
Did ha intentado traducir '(dx, flotador dy) '? –
Lo investigué. Lamentablemente, no estoy dibujando en el lienzo. Necesito las coordenadas reales. Una vez que obtenga las coordenadas del lienzo, planeo traducir las coordenadas de mi lienzo a las coordenadas del mapa de la aplicación que se utilizarán para la navegación. – Phil
¿Realmente nadie más? ¿Tiene esto que ver con el tamaño/resolución/profundidad de la pantalla y el lienzo 'Rect object? ¿Alguien ha hecho esta traducción antes? – Phil