0

我有一个自定义View类,它显示一个地图,其中一些位置的标志很少。
它应该是这样的:( 地图示例,图片取自 Google
图片来自谷歌)

Canvas我用'sdrawBitmap方法绘制这些标志。
不幸的是,它不会在不同的屏幕尺寸下显示相同的确切位置。

在此处输入图像描述

我试过使用这些:

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inScaled = false;
Bitmap img = BitmapFactory.decodeFile(myFile.getAbsolutePath(), opt);

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

4

1 回答 1

1

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

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

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

例如

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

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

于 2013-10-25T11:01:10.350 回答