2011-12-13 58 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