1

我有一个 32x32 像素的 PNG 文件。我在我的应用程序中连续使用其中的 8 个作为可绘制对象。这些可绘制对象不在 hdpi、mdpi 或 ldpi 文件夹中。我发现当启动 3 个标准尺寸模拟器中的任何一个时,所有 8 个可绘制对象的屏幕视图看起来几乎相同。

我注意到我正在使用的 ldpi 模拟器 (QVGA) 的分辨率为 240x320。8 x 32 = 256,所以因为我可以看到我所有的可绘制对象(以及中间的空间),我打赌某些东西正在改变它们的大小。

我已经阅读了Android 开发者页面上的Supporting Multiple Screens文档,但我仍然不明白实际发生了什么。你能用你自己的话来解释我的drawables的大小发生了什么以及SDK如何知道自动修改它们吗?

4

1 回答 1

4

当然 - 如果您没有定义自己的 DPI,系统会自动调整可绘制目录中的图像大小以对应设备的 DPI。所以事实上'drawable'目录和'drawable-mdpi'目录几乎一样,因为你没有定义ldpi和hdpi版本,系统会自动从你的mdpi资源中构建它们。请参阅此处的 (1.):http: //developer.android.com/guide/practices/screens_support.html#support -“资源的预缩放(例如图像资产)”

当然,您的图标在 ldpi 设备上看起来还不错,但在 hdpi 设备上看起来很难看。这是因为 mdpi 图标被缩放以匹配更高的维度,有效地导致每个像素的信息更少。

于 2010-10-08T13:09:35.060 回答