【问题标题】:Out of memory android issue [closed]内存不足的android问题[关闭]
【发布时间】:2013-10-16 11:22:05
【问题描述】:

在列表视图的每一行中显示大缩略图时面临内存不足的问题。

【问题讨论】:

标签: android


【解决方案1】:

显然你做错了。 Android 为您提供了极其有限的内存空间。您应该在列表视图中显示缩略图,并且只有在选择它们时才将完整图像加载到内存中(从 SD 卡)。如果您手动加载位图,请记住recycle()

【讨论】:

  • 所有图像都已下载,那时我使用图像位图选项。所有图像都是大尺寸的,所以我使用选项来减小尺寸,但图像变得像素化。(基本上这个功能是通过图像类的延迟加载来完成的。)
  • 我的意思是你应该把你的图片保存在 SD 卡上......而不是在内存中。懒惰还是不懒惰……这不是重点。将图像下载到磁盘,然后为列表视图加载小缩略图。当有人点击拇指时......然后你会显示更大的图像。或者,如果您的列表包含 1/2 屏幕(或更大)的图像,则一次只加载 2 或 3 张图像,recycle() 那些移出视野的图像。
  • 是的,我尝试将位图保存在 sdcard 中,但保存大图像需要很长时间。如果你想说我应该从保存的文件中为列表视图的每一行获取缩略图,这种情况下会卡住列表视图。因为在 getview 中,我使用 BitmapFactory 获取缩略图需要时间。
  • 嗯...如果您关心的是性能,那么您必须提前将这些图像预加载到 SDCard。无法回避这样一个事实,即您可以使用的内存空间非常有限。确保在 Manifest 中也请求更大的堆空间。
  • 从 api 级别 12 开始支持清单中更大的堆空间请求。但是此功能也会降低应用程序的性能,因为在这种情况下 gc 会变得非常慢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多