Android - 覆盖不同分辨率的图像

时间:2012-04-10 11:05:18

标签: android

虽然我知道图像分辨率并且在android上支持它们是围绕android的一个相当常见的问题我似乎无法找到任何问题或在线发布处理我想做的事情。

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

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

任何反馈都将不胜感激。 莱恩

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

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