Android ListView内存不足

Android ListView内存不足,android,out-of-memory,Android,Out Of Memory,我非常熟悉OOM的概念。我在这里遇到了很多被问到的问题,我知道这听起来像是一个关于OOM的重复问题,但我现在有一个不同的问题 我有成百上千的图像,我必须在一个活动中的单个列表视图中显示这些图像 我利用了Fedor的延迟加载概念 当图像很少时(大约50-100个图像),代码可以正常工作,但是如果我得到大约200到300个图像,一旦用户在列表视图中滚动(最终),我就会出现内存不足异常 我正在使用开发人员站点中显示的高效适配器概念,我相信这是最好的自定义适配器使用方法 到目前为止,我看到的所有建议都是

我非常熟悉OOM的概念。我在这里遇到了很多被问到的问题,我知道这听起来像是一个关于OOM的重复问题,但我现在有一个不同的问题

我有成百上千的图像,我必须在一个
活动中的单个
列表视图中显示这些图像

我利用了Fedor的延迟加载概念

当图像很少时(大约50-100个图像),代码可以正常工作,但是如果我得到大约200到300个图像,一旦用户在
列表视图中滚动(最终),我就会出现内存不足异常

我正在使用开发人员站点中显示的高效适配器概念,我相信这是最好的自定义适配器使用方法

到目前为止,我看到的所有建议都是基于通过缩放位图或其他方式来减小位图大小。我已经尝试过这些方法。但OOM仍然会在某个时间点发生

降低图像质量看起来不像是处理此异常的方法,因为这似乎会影响用户体验,而且对于大量位图也不起作用

我的问题是:

  • 如何在单个
    列表视图中显示
    n
    图像而不面对OOM
  • 在这种情况下,最好的策略是什么
  • 是否可以在单个
    列表视图中显示大约500个图像
  • 非常感谢您的帮助

  • 调查谷歌的搁置计划
  • Shelvesproject执行以下操作:加载图像时使用占位符图像,使用weakreference存储图像,使用清除更新延迟处理程序
  • 是和否,listview可以包含这么多的项目,但不可能同时在内存中包含这么多的图像
  • 调查谷歌的搁置计划
  • Shelvesproject执行以下操作:加载图像时使用占位符图像,使用weakreference存储图像,使用清除更新延迟处理程序
  • 是和否,listview可以包含这么多的项目,但不可能同时在内存中包含这么多的图像

  • 在将此API级别放入应用程序堆之前,请尝试使用API级别11+的映像。是的,它可以有一个500图像的列表视图,并且工作平稳(例如联系人应用程序)


    这可以帮助您获取图像、缓存和回收它们

    在将此API级别放入应用程序堆之前,请尝试使用API级别11+的映像。是的,它可以有一个500图像的列表视图,并且工作平稳(例如联系人应用程序)


    这可以帮助您获取图像、缓存和回收它们

    你能告诉我们你的代码和错误吗?几天前我也犯了同样的错误。您是否使用URI设置图像?尊敬的。不,我在运行时通过API下载。对于这个愚蠢的问题,我很抱歉,但是你是否将所有500张图像都保存在内存中?不,我不想将其保存在内存中。我使用延迟加载概念将其保存到SD卡。是否使用相同类型的缓存将位图保存在内存中?能否向我们显示您的代码和错误?几天前我也犯了同样的错误。您是否使用URI设置图像?尊敬的。不,我在运行时通过API下载。对于这个愚蠢的问题,我很抱歉,但是你是否将所有500张图像都保存在内存中?不,我不想将其保存在内存中。我使用延迟加载概念将其保存到SD卡。是否使用相同类型的缓存将位图保存在内存中?