祝大家新年快乐!
我正试图从互联网上下载图像并将它们放入不同的ImageViews。ImageViews是在用户滚动时动态创建的。当用户到达滚动视图底部时,我再加载10张图片。
图像正在加载,但当我有很多图像时,我得到一个java.lang.OutOfMemoryError.
我知道问题是我有很多图像消耗了很多内存,所以…我的设想是怎样的?
谢谢!
尝试使用ListView代替ScrollView。然后,您可以使用像通用图像加载器这样的延迟加载技术。ListView利用视图循环,这将更容易占用你的内存,你也可以使用图像加载器缓存图像。这个库也有一些内存管理选项。
你必须跟踪你已经加载的图像,并开始回收它们时,他们的视野
您可能会发现LruCache是一个有价值的工具。在IO12上有一个很好的演讲"用更少的资源做更多的事情:成为一个好的Android公民",讨论了很多内存问题,包括一些关于如何使用LruCache的讨论,从4分钟开始。