【发布时间】:2015-10-15 06:13:37
【问题描述】:
我在各种 Drawable 文件夹(Drawable-xhdpi、Drawable-mdpi 等)中有很多 PNG 图像。它们都相对较小(最多 10KB),但有一次我需要加载大约 50 个他们在屏幕上。当我这样做时,它会导致 OutOfMemoryError。理想情况下,我希望能够通过简单地调用一次 setContentView 来加载这些图像(内容视图有一堆 ImageViews,它们的 src 属性已经设置为相应的图像)。这就是我现在正在做的事情,但是由于内存错误,这当然不起作用。除了缩小图片大小,还有什么办法可以防止OutOfMemoryError?
【问题讨论】:
-
你可以使用一些高效的图片加载库,比如毕加索:square.github.io/picasso
-
您是一次性加载它们还是回收它们?看看这个 - developer.android.com/training/material/lists-cards.html
-
你可以通过在应用标签下的清单文件中写入“android:largeHeap="true"”来增加堆的大小
-
atuter- 我试过了,但它导致在屏幕下半部分加载图像时出现明显的延迟。理想情况下,我希望能够在显示任何图像之前以某种方式在背景中加载所有图像。毕加索支持这样的东西吗?此外,它需要在运行时单独设置每个图像,而不是在 XML 文件中,对吧?
-
Amos- 看起来它可能会有所帮助,但我不需要这些类提供的滚动功能;我希望所有内容都显示在同一屏幕上。我不确定是否有更合适的方法来做到这一点,但我肯定会尝试这个选项。谢谢!
标签: java android memory imageview