我想将城市地图设置为我的应用程序的背景,我想在已知坐标上方放置一些图标。
通过创建一个扩展SurfaceView并实现Runnable的类,我设法在320x480分辨率上实现了它;地图和图标都是在run()方法中绘制的(通过canvas.drawBitmap())。
显然,当我尝试以不同的屏幕分辨率运行我的应用程序时,一切都会出现问题。
你能不能给我一些关于如何绘制背景图像并让图标保持“位置”的提示,无论屏幕分辨率如何?
非常感谢!
答案 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);