【问题标题】:how to avoid OutOfMemoryError如何避免 OutOfMemoryError
【发布时间】:2017-03-20 10:56:29
【问题描述】:

我正在尝试在每个水平列表视图中加载 20 个图像。我的 RecyclerView 包含 7 个水平 Listview,每个 Listview 包含 20 个图像。当我单击任何 Listview 以获取图像详细信息和 Back press。当我继续此步骤 4 次时,我得到内存不足错误。

如何避免内存不足错误?

你也可以建议,

  1. 哪个图像加载器最适合一次加载大量图像而无需 占用大量运行时内存。
  2. 包含高分辨率图像的 ListView 的按比例缩小图像。

【问题讨论】:

  • 我更喜欢 Picasso 或 Glide 来显示图像
  • 试过 Picasso 和 Volley ImageLoader。但它仍然需要 72mb 堆。
  • 您是否将图像缩放为毕加索中的图像视图大小。如果没有,请这样做。
  • 有任何链接吗? @尼维德
  • 通过square.github.io/picasso 并尝试使用 .resize() Picasso.with(context) .load(url) .resize(50, 50) .centerCrop() .into(imageView) 可能会减少您的内存不足问题

标签: android performance image-processing memory-leaks out-of-memory


【解决方案1】:

不确定它是否对您有帮助,但请尝试此代码

  @Override
public void onLowMemory() {
    super.onLowMemory();
    System.gc(); // clear bitmap and other objects here to reduce memory. 
}

【讨论】:

  • 还有其他解决方案吗?
猜你喜欢
  • 2018-01-11
  • 2013-06-05
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多