首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android上下载图像的内存管理问题

android上下载图像的内存管理问题
EN

Stack Overflow用户
提问于 2011-03-29 18:32:06
回答 1查看 366关注 0票数 0

我正在开发的一个应用程序有点小问题。该应用程序显示一个库,显示1到70+之间的图片(一次一张),这些图片都是从网上下载的。

一开始我保存一张低分辨率图片,在下载完所有低分辨率图片后,我开始下载高分辨率图片并替换它们。

当我开始下载高圆周率的文件时,问题就来了。下载了一些之后,我会得到一个memoryOutOfBoundsException (这是可以预料到的)。

为了解决android中的这类问题,我看到了四种选择:

1.-使用机器人缓存管理器.

这仅限于Web视图(因此我不能使用它们)。

2.-每次用户通过图片传递时都会加载hi res图片。

这将使每一次用户更改图片时都会出现糟糕的分辨率图片,直到下载和切换高分辨率图片(在后台加载)为止。让应用程序看起来很糟糕。

3.-创建某种可容纳5张图片并使用类似于第二种方法的内存缓存。

在这种情况下,我将尝试在ram中,让5个hi res图片最接近正在显示的图片(下载或下载),这样应用程序就可以为那些接近所选的图片显示hi res图片,而不必在用户看到低res图片之后下载它们。

4.-创建个人缓存管理器

在本例中,我将创建一个个人缓存管理器,将图片保存在SD卡上,并在图库中使用这些图片。这也带来了一个问题,我将依赖于在设备上有SD卡的用户。为了解决应用程序被删除后文件留在设备上的问题(如果应用程序被删除),我将只删除应用程序的onDestroy()方法上的所有文件(我不介意再次加载它们)。

在我看来,最好的选择是第四个。方法,这迫使我依赖拥有SD卡的用户。

现在我的问题。

还有别的办法解决我的问题吗?

在装置上是否有另一种可以用来逃避SD卡的依赖的记忆体?跟着这个问题。是建议使用这类记忆体,还是使用它会带来其他问题?(此外,还会有一篇关于它的教程。)

用户通常有SD卡吗?还是第四个选项是最差的?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-29 18:58:01

我会写我自己的缓存管理器。如果用户只能将图片加载到列表中的左边和右边,那么如果可能的话,我会将这三个图片保存在内存中,并且每次用户导航到新图片时都会移动。我不确定这是否是你的应用程序的工作方式,但这是一种方法。如果您无法预测用户的下一个选择,可能需要一个循环缓存,并试验一下一次可以保存多少内存(不知道文件大小的最佳、最坏和平均情况,我对此不太了解)。

你可能已经知道了,但这是值得一提的。当您使用位图时,任何时候使用完one...really (比如从缓存中刷新它)时,都可以调用它的循环方法。这似乎是最迅速和最广泛接受的方式,为系统恢复内存。

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

https://stackoverflow.com/questions/5477217

复制
相关文章

相似问题

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