我使用GestureListener
在Android SurfaceView
中捕獲了MotionEvent
長時間點擊。然後,我需要將MotionEvent
的座標轉換爲畫布座標,從中可以生成自定義地圖座標(而不是Google地圖)。如何正確地將像素座標轉換爲Android中的畫布座標?
從我看過的內容來看,我給出了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對象?
你有沒有試過'翻譯(DX浮動,浮動DY)'? –
我看着它。不幸的是,我並沒有畫在畫布上。我需要實際的座標。一旦我獲得畫布座標,我計劃將畫布座標轉換爲將用於導航的應用程序的地圖座標。 – Phil
真的沒有人?這是否與屏幕尺寸/分辨率/深度以及畫布的Rect對象有關?以前沒有人做過這種翻譯嗎? – Phil