Android屏幕上精确坐标的图标

时间:2011-12-13 10:47:05

标签: java android

我想将城市地图设置为我的应用程序的背景,我想在已知坐标上方放置一些图标。

通过创建一个扩展SurfaceView并实现Runnable的类,我设法在320x480分辨率上实现了它;地图和图标都是在run()方法中绘制的(通过canvas.drawBitmap())。

显然,当我尝试以不同的屏幕分辨率运行我的应用程序时,一切都会出现问题。

你能不能给我一些关于如何绘制背景图像并让图标保持“位置”的提示,无论屏幕分辨率如何?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要实现与密度无关的像素。

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

这是你的绘图代码的顶部。每次你绘制的东西都会将你的x和y坐标与dp相乘。 例如:

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