0

我有一个合成两个图像的过程,它在我所有的设备上都能很好地工作%。

我已经尝试将艺术作品放在 drawable 和 drawable_hdpi 文件夹中(这不重要),但图像总是以错误的大小拉出。我不是 DPI 方面的专家,但问题是所有这些都发生在任何东西被吸引到任何地方之前。我只是从资源中加载位图并询问它的尺寸是什么,并获得这个增加 30% 的数字。对我来说,图像被炸毁的谜团更加复杂!所以,它也在这个过程中失去了质量。

有没有人对可能导致这种情况的原因有任何想法?我只有一台 ICS 设备(三星 Nexus),所以我不确定这是 ICS 问题还是设备问题。

我通过将艺术品缩放到原始尺寸来解决它,但是我花了一段时间才弄清楚到底发生了什么,我很想知道我是否忽略了艺术品存储方式中非常重要的东西并在 ICS 中阅读,或者这只是一个错误。

TIA

4

1 回答 1

4

xhdpi当设备的本机密度(对于 Galaxy Nexus)文档更多文档不可用时,Android 会自动向上(和向下)扩展资源

因此,如果您的图像mdpi100x100 的文件夹中,系统会自动将其缩放到 150x150hdpi和 200x200 的xhdpi. 显然,您将在这里失去质量,因此您应该提供多种密度的图像(通常是hdpixhdpi)。如果您根本不想缩放图像,则可以将其放在nodpi文件夹或assets文件夹中。

mdpi是基线,因为它是第一个设备 (G1) 的密度并且是 160dpi

hdpi为 240dpi (1.666 * mdpi)

xhdpi是 320dpi (2 * mdpi)

现在,当您通过 BitmapFactory 读取资源时,它将报告已为您缩放的图像的尺寸,而不是实际的资源尺寸。在大多数情况下,这就是您想要发生的事情。

于 2012-05-19T04:08:39.493 回答