【发布时间】:2017-04-25 06:17:40
【问题描述】:
我有一个屏幕,我必须在屏幕上显示两个相似的图像。这两个图像的大小都是动态的,但它们覆盖了大部分屏幕。当我在我的应用程序中导航到此屏幕时,我在 AndroidStudio 的内存监视器中看到了 12MB 的峰值,这意味着这两个图像都在使用该 12MB,因为该屏幕上没有其他 UI 元素,并且由于这两个图像相似,需要等量屏幕空间,我猜每个显示时会消耗 6MB 内存。这两张图片的尺寸均为 1174 x 1174 像素,在 res 目录中大小为 396KB。
我尝试过使用 Glide,但是当这些图像也通过 Glide 加载时,我看到同样的内存峰值。如果应用程序试图占用比可用内存更多的内存并且在我的应用程序的其他部分中大量使用图像,即使 Glide 也无济于事。所以总是存在内存紧缩,并且在显示这两个图像的应用程序中出现了很多 OutOfMemory 异常。
所以我的问题是如何减少这些图像的内存使用量?还有,为什么 res 文件夹中的图片大小为 396KB 时,却占用了 6MB 内存?
【问题讨论】:
标签: android out-of-memory image-loading