图像也会根据密度进行缩放,因此它们可以使用大量内存。
例如,如果图像文件位于
drawable文件夹(
mdpi密度)中,并且您在
xhdpi设备上运行它,则宽度和高度都会加倍。也许这个链接 可以帮助您,或者这个 。
因此,在您的示例中,图像文件将占用的字节为:
(1024 * 2)(800 * 2) 4 = 13,107,200字节
如果您在
xxhdpi设备(例如HTC one和Galaxy S4)上运行它,甚至会更糟。
你能做什么?可以将图像文件放入正确的密度文件夹(
drawable-xhdpi或
drawable-xxhdpi)中,也可以将其放入
drawable-nodpi(或资产文件夹中)并根据需要缩小图像的比例。
顺便说一句,您不必设置,
options.inJustDepreBounds = false因为它是默认行为。实际上,您可以将位图选项设置为null。
关于缩放下来,你可以使用 谷歌的方式 或我的方式每个人都有自己的优点和缺点。
关于缓存,有很多方法可以做到。最常见的一种是LRU缓存。我最近还创建了一个替代方法(请在此处),该替代方法可让您缓存更多图像并避免使用OOM,但这给您带来了很多责任。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)