2011-12-13 59 views
2

我想設置一個城市的地圖作爲我的應用程序的背景,我想在已知的座標上放置一些圖標。在Android的屏幕上的確切座標的圖標

我設法通過創建一個擴展SurfaceView並實現Runnable的類來實現320x480分辨率;地圖和圖標都在run()方法(通過canvas.drawBitmap())繪製。

顯然,當我嘗試在不同的屏幕分辨率上運行我的應用程序時,所有內容都出現在一個巨大的混亂中。

您能否給我一些關於如何繪製背景圖片的提示,並讓圖標保持其「位置」而不考慮屏幕分辨率?

非常感謝!

回答

0

您需要實現與密度無關的像素。

private final float dpScale = 
    getContext().getResources().getDisplayMetrics().density; 
private final float dp = (onePixel * dpScale +0.5f); 

把這是你的繪圖代碼的頂部。每次你用dp畫出你的x和y座標。 例如:

canvas.drawText("hello world", 100*dp, 150*dp); 
+0

非常感謝你! – gargiolas