Как правильно преобразовать координаты пикселей в координаты холста в Android?

Я захватываю 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 холста?

9
задан Phil 1 August 2011 в 17:15
поделиться