0

尽管我知道图像分辨率并在 android 上支持它们是围绕 android 的一个相当普遍的问题,但我似乎无法在网上找到任何与我想做的事情有关的问题或帖子。

我有一张地图,我将其设置为 android 设备的背景。然后,我在特定城市所在的位置叠加可触摸点和图像。我的问题是我应该如何正确处理在不同设备上定位城市?

如果有人要问,我有不同 dpi 的不同图像。但是,在这种情况下,使用基于背景缩放大小的百分比来固定 x 和 y 的位置是正确的方法。这是我不断回归的解决方案,但是我还没有找到一种方法来获得背景图像的缩放大小。

对于任何反馈,我们都表示感谢。瑞安

4

2 回答 2

1

在 Android 中,尝试使用 dpi/weights 的某种组合将图像分层到背景中的特定位置是非常困难的。问题之一是背景如何缩放?您是在使用建议的 9-patch 图像还是只是让 android 裁剪或缩小图像?即使在此之后手机的“dpi”值也不准确,操作系统只是使用预定义的乘数(例如 hdpi 的 1.5x)来快速估计图像的大小。要获得“真实”的 dpi,您需要以下内容:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

并在计算中使用这些值。最后,最好只使用屏幕的真实值并使用您所说的百分比。我相信大多数 OpenGL 应用程序也是这样做的(如果我错了,请有人纠正我),并且像这样即将使用图形引擎的应用程序可能应该表现类似。

于 2012-04-17T14:05:36.567 回答
0

尝试布局权重,这是一个很好的解释:

http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/

于 2012-04-10T14:11:54.920 回答