Я захватываю MotionEvent
для долгого щелчка в Android SurfaceView
, используя a GestureListener
. Затем мне нужно преобразовать координаты события MotionEvent
в координаты холста, из которых я могу сгенерировать пользовательские координаты карты (не Google Maps).
Из того, что я прочитал, я беру, что данные MotionEvent e
, e.getX ()
и e.getY ()
получают координаты пикселей. Как мне преобразовать эти координаты в координаты холста SurfaceView
?
Вот мой GestureListener
для прослушивания длинных щелчков:
/**
* 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
}
}
Заранее спасибо!
Редактировать : Связано ли это с размером / разрешением / глубиной экрана и объектом Rect холста?