小编Aja*_*ati的帖子

AsyncTask加载图像RecyclerView

我正在尝试创建类似于该应用程序的应用程序: 一个在recyclerview中具有一些图像和描述(卡片视图)的应用程序

首先,我从图像的数据库标题,描述和图像的URL加载CardView的所有信息。当我将所有信息放到RecyclerView中时,(标题和描述)可以正确显示,但是对于图像,我创建了一个AsyncTask类来从URL加载图像,从而使用户不必等待太多时间来等待应用程序响应。

如果用户缓慢滚动,图像加载正确并且一切都很好,但是如果我快速滚动,则会遇到一些问题,例如,项目3中显示的图像显示在最后一个项目中,直到最后一个项目为止图像已加载并刷新。

这是我的适配器在其中加载图像的一些代码:

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    if (holder instanceof EventosViewHolder) {
        ......
        //Load the image (getFoto() get drawable)
        if (eventoInfoAux.getFoto()==null){
            CargarImagen cargarImagen = new CargarImagen(((EventosViewHolder) holder).vRelativeLayout,eventoInfo,position);
            cargarImagen.execute();
        }else{
            ((EventosViewHolder) holder).vRelativeLayout.setBackground(eventoInfoAux.getFoto());
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是CargarImagen类的代码:

//Clase para cargar imagenes con una tarea asíncrona desde un url de la imagen
public class CargarImagen extends AsyncTask<String, String, Boolean>{

//RelativeLayout donde se introduce la imagen de fondo
RelativeLayout relativeLayout=null;
//EventoInfo para obtener la url de la …
Run Code Online (Sandbox Code Playgroud)

android image android-asynctask android-cardview android-recyclerview

4
推荐指数
1
解决办法
1万
查看次数