0

我有一个设置背景图像的活动。当我继续进入和离开此活动时,它会在某些设备中导致 OutOfMemory。

  • 假设我正在使用 x-hdpi 设备。如果我将图像放入 hdpi 存储桶而不是放入 x-hdpi 存储桶,是否会占用更多的内存,因为如果我放入 hdpi 存储桶,图像需要按比例放大?实际上,如何确定我应该将图像放入哪个存储桶?

  • 有什么办法可以避免这种情况的 OutOfMemory 吗?我尝试在 OnDestroy 中调用回收和 setImageResource(null)。但是当我再次进入该活动时,我会遇到“无法绘制回收位图”的异常。

4

1 回答 1

1

回答第二个问题。

在解码图像并设置为背景之前,您应该调整图像大小以避免内存溢出错误。当我们在内存中加载图像时,通常会出现此错误。了解如何有效地显示图像

回答第一个问题。

将相同的图像放入不同的文件夹不会消耗内存,就像您向HDPI设备显示LDPI图像一样,它会拉伸但会占用相同的内存(尽管看起来很奇怪)。但是,如果您的设计师为每个密度制作不同的图像,那么图像大小会有所不同,那么它将需要更多或更少的内存

于 2012-12-06T11:43:41.993 回答