ListView-异步任务 - 加载图像

时间:2015-09-28 18:53:13

标签: android listview android-asynctask android-imageview

在我的应用程序中,我需要显示存储在外部存储目录中的图像。我用这些图像填​​充列表视图。但是,如果有太多图像说,> 10,应用程序内存不足。我现在明白我应该实现一个异步任务来实现这一点。可以帮助我如何做到这一点。我应该在LisviewAdapter.java或Activity.java中调用Async类吗?任何一个例子都会非常有用。谢谢。

2 个答案:

答案 0 :(得分:2)

为了优化它,我建议你使用 Picasso用于从网址加载图片的库。

功能是:

Handling ImageView recycling and download cancelation in an adapter.
Complex image transformations with minimal memory use.
Automatic memory and disk caching.

请检查:http://square.github.io/picasso/

答案 1 :(得分:1)

您必须使用LazyLoading机制来避免内存问题。 Picasso是android完成此类任务的绝佳库。只需在适配器中添加该行,而不是直接将位图设置为imageview:

Picasso.with( context ).load( new File(...)).into( imageView3 );

此外,您还要将这些内容添加到依赖项列表中的build.gradle文件中:

compile 'com.squareup.picasso:picasso: 2.5.2 '