首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用BitmapFactory加载多个图像[OutOfMemoryException]

使用BitmapFactory加载多个图像[OutOfMemoryException]
EN

Stack Overflow用户
提问于 2013-02-02 04:13:12
回答 1查看 393关注 0票数 1

我尝试使用BitmapFactory将30张图像加载到位图数组中,但无论我做什么,都会得到OutOfMemoryException。我试着调整它的大小并缩小比例..人们通常做4-8,我试了12,16,20,都没有效果..

我有一个循环,它加载一个URL字符串,每次打开一个新的have连接,下载图像,并尝试将其保存为位图。每个图像大约有300kb。

我读到过其他人只有一两张图片就有这个问题,所以我甚至不确定我想要做的事情是如何实现的。我知道jpeg和png是压缩格式,手机上的文件大小要大很多,因为它是一个未压缩的位图,但肯定有一种方法可以有效地将一堆图片保存在一个数组中。因为我以前见过。

我尝试了bitmap.recycle(),它花了大约20秒来加载,但没有内存错误,然后当我尝试查看位图图像时,它给了我‘无法查看回收的图像’?

不确定是否有人试图加载许多图片(30-100),并将其保存在位图数组中,或者是否可能,但无论哪种方式,请让我知道!

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-23 23:51:15

我解决了这个问题,并认为我应该帮助任何有同样问题的人。

我最终使用的是nostra13的“通用图像加载器”-- https://github.com/nostra13/Android-Universal-Image-Loader

为了避免OOM错误,我从API加载了两组独立的图像,一组是全尺寸的,另一组是缩略图大小(100x100左右)。然后,我加载网格视图的所有缩略图大小的图像,并且仅当用户单击缩略图时才加载完整大小的个人图像。通过这种方式,我避免了所有的OOM错误。在网格视图中显示下一个位图之前,我还回收了我使用的位图。

希望这能有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14654249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档