5

我想缩放图像,使它们最适合屏幕尺寸,并且不会消耗比所需更多的内存。

目前我把为 640 x 960 屏幕制作的图像放在 hdpi 文件夹中,它看起来不错,但它消耗的内存比需要的多得多。例如,一个 480 x 800 的设备是 hdpi 并将加载这些位图。

由于我知道的大多数 hdpi 设备都是 480 x 800,我的第一个想法是缩小 hdpi 中的所有图像以适应 480 x 800 屏幕。但我不确定,因为 hdpi 不仅仅指分辨率,还指密度。

这很令人困惑,因为文件夹指的是密度,但位图只是像素,我不知道如何在那里分配它们......

任何帮助是极大的赞赏。

提供更多上下文:问题是我有一个位图动画,每个位图超过 20 个 640 x 588 像素。因此,在某些设备上,仅此一项就会耗尽内存。每个位图占用 640 x 588 的内存为 1.43 mb!。如果我缩小到 480 x 441,我会得到 0.80 mb,这是一个巨大的进步。由于在 480 x 800 设备中我不会丢失细节,因此我会缩小所有图块。

4

1 回答 1

6

在我看来,适合全屏大小的图像对于一般的 Android 来说并不是一个好主意。就是说,如果这是您需要做的,我不会担心内存使用情况,而是选择您认为特定密度所需的最大尺寸,然后让操作系统从那里缩小以适应屏幕尺寸的微小差异. 不要忘记,drawable-large-hdpi如果您需要更具体,您也可以按屏幕尺寸指定可绘制对象(例如)。

根据图像的不同,如果可以使背景的任何部分可拉伸,我建议将其设置为 9-patch,并调整其大小以适合该密度桶中最小的屏幕,并以这种方式适合屏幕。

于 2012-07-23T14:30:12.627 回答