使用自定义视图在多个屏幕设备上定位图像

时间:2013-10-25 10:54:39

标签: android view

我有一个自定义View类,它显示一些地图,其中有一些标志位于某些位置 它应该如下所示: Map example, images taken from Google
(图片来自Google)

我使用Canvas的{​​{1}}方法绘制这些标记 不幸的是,它不会在不同的屏幕尺寸中显示相同的确切位置。

enter image description here

我尝试过使用这些:

drawBitmap

但是它会在所有屏幕上产生完全相同的图像(在大屏幕上显示一个小图像),这是不好的。
所以图像也应该缩放。
我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我从来没有这样做过,但你可能需要考虑屏幕的密度。

int multiplier = getResources().getDisplayMetrics().density;

LDPI,这将返回0.75。然后,您必须使用MDPI作为基线,并使用乘数来说明其他类型的显示。

E.g

int top = y * multiplier;
int left = x * multiplier;

如果我完全错了,我会删除这个答案,但这就是我想到的。