我希望对图像进行缩放,使其最适合屏幕尺寸,并且不会消耗超过所需的内存。
目前我将用于640 x 960屏幕的图像放在hdpi文件夹中,它看起来不错,但它消耗的内存比必要的多得多。例如,480 x 800设备是hdpi,将加载这些位图。
由于我所知道的大多数hdpi设备都是480 x 800,我首先考虑的是缩小hdpi中的所有图像以适应480 x 800的屏幕。但我不确定,因为hdpi不仅仅指分辨率,而是密度。
令人困惑,因为文件夹是指密度,但位图只是像素,我不知道如何在那里分配它们......
非常感谢任何帮助。
提供更多上下文:问题是我有一个位图动画,每个640 x 588像素有超过20个位图。因此,在某些设备上,仅此一项就会在内存不足的情况下运行。 640 x 588占用的内存为每个位图1.43 mb!如果我缩小到480 x 441,我得到0.80 mb,这是一个巨大的进步。因为在480 x 800设备中我不会丢失细节,我会缩小所有的瓦片。
答案 0 :(得分:6)
在我看来,尺寸适合整个屏幕的图片对于Android来说只是不是一个好主意。也就是说,如果这是你需要做的事情,我会更少关注内存使用情况,并选择你认为特定密度所需的最大尺寸,然后让操作系统从那里缩小以适应屏幕尺寸的微小变化。不要忘记,如果您需要更具体的话,也可以按屏幕大小指定drawable(例如drawable-large-hdpi
)。
根据图像,如果可以使背景的任何部分可伸缩,我建议将其设为9补丁,并调整大小以适应密度桶中的最小屏幕让它适合屏幕那样。