繁体   English   中英

Android将图像加载到ListView AsyncTask

[英]Android loading images to ListView AsyncTask

这更多是一个应用逻辑和性能问题。

项目设置:我有一个Android ListView,它可以使版面夸张,而不仅仅是简单的文本。 在每一行中(确切地说是7行),我都有一个通过URL提取的图像。

问题:此ListView及其数据由充当临时数据持有者的模型对象的ArrayList设置。 添加行后,将使用模型对象在特定行的UI中设置数据。 随之而来的问题是,当用户在列表上向下滚动时,曾经可见的行现在不在用户的视野之内。 当用户向后滚动到该行时,获取图像的整个过程将再次发生。

这似乎可以避免,而不是通过模型传递URL,然后获取图像,我应该首先获取图像,然后将位图传递给模型,因此,当用户再次看到该行时,它就不会重新加载图像。

有没有一种方法可以编写可以成功加载7个图像的AsyncTask,还是必须为每个图像创建一个AsyncTask对象?

每当我走这条路线时,应用程序就会崩溃...

您可以将Picasso库用于此任务。 访问http://square.github.io/picasso/

在ListView的适配器中,在getView方法中,可以输入以下内容:

     Picasso.with(context) 
     .load(url)
     .placeholder(R.drawable.ic_launcher)
     .error(R.drawable.ic_error) 
     .resizeDimen(R.dimen.list_detail_image_size,R.dimen.list_detail_image_size)                              .centerInside()
    .into(imgView);

您不需要AsyncTask,因为此库已经实现了它自己。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM