4

我试图了解 res/drawables 图像应该如何在不同的屏幕密度下工作。现在我有一个 1.5 的应用程序,例如,我有一个 100x100 像素的图像。在 Droid 上使用时,它会缩放此图像,使其在该设备上看起来相对大小相同(所有其他布局缩放由我处理,使用倾角单位)。

所以现在我需要更新我的项目并添加三个文件夹,对吧?:

  1. 可绘制的 ldpi
  2. 可绘制的 mdpi
  3. 可绘制的 hdpi

所以我要把我的 100x100 图像放在 -mdpi 文件夹中。如果我想为 -hdpi 文件夹制作一个版本 - 我怎么知道要放大多少?我的意思是它看起来默认应该是 1.5 倍大。但是,如果我把它放大 2.0 倍,或者我正在运行的设备的密度恰好不是基线 G1 的 1.5 倍,会发生什么?我的布局在这些设备上看起来会不会有所不同?

谢谢

4

3 回答 3

12

ldpi、mdpi 和 hdpi 对应于密度“类”,而不是设备的实际密度。

例如,G1 是 mdpi 类设备 (160dpi),但其屏幕密度实际上约为 180dpi。该机器人是 hdpi 类设备 (240dpi),但其屏幕为 265dpi。

位图缩放仅基于密度类。实际的屏幕密度被忽略。

因此,G1 将显示的 mdpi 位图比具有真正 160dpi 屏幕的 mdpi 设备略小,但这是一个非常小的差异,所以没什么大不了的。

(请注意,其他尺寸类型,例如“in”和“mm”,确实考虑了屏幕密度。)

因此,对于密度,您有 3 种选择:ldpi (120)、mdpi (160) 和 hdpi (240)。因此,您的 100x100 位图应分别为 75x75、100x100 和 150x150。

有关更多信息,请参阅:http: //developer.android.com/guide/practices/screens_support.html#qualifiers

于 2009-12-23T09:44:46.893 回答
1

您永远无法确保涵盖所有可能的屏幕尺寸。但是如果您的布局自动排列项目,您可以使用 px 而不是 dip 设置绝对图像大小。

也许您还想使用 (small/normal/large) 而不是 (ldpi/mdpi/hdpi),因为前者指的是屏幕尺寸而不是密度。资源目录限定符

于 2009-12-17T16:05:26.817 回答
1

该行为还取决于您的清单声明的内容,特别是清单中的标记(您可以使用 ADT 清单编辑器中第一个选项卡中的“清单附加项”对其进行配置)。

于 2009-12-17T17:45:09.577 回答