RecyclerView:在向上/向下滚动时,配置文件图片重复/重复

时间:2016-05-04 18:46:43

标签: android android-recyclerview

我目前正在创建一个RecyclerView,显示带有图片和其他信息的人员列表。文本信息显示正确。当我快速向上/向下滚动列表时,只有图像或我应该说配置文件图片有时会重复/重复,同时它仍然从服务器获取图片。我一直在寻找解决方案,但我只能找到使用Glide的解决方案。我目前正在使用CircleImageView作为我的个人资料照片。这是我的onBindViewHolder代码:

public void onBindViewHolder(MembershipActivationViewHolder holder, final int position) {
    final Member m = mMembers.get(position);
    holder.name.setText(m.getName());
    holder.email.setText(m.getEmail());
    if(m.getStatus().equals("Active")){
        holder.status.setText(Html.fromHtml("<font color='#00CD00'>" + m.getStatus() + "</font>"));
    }else{
        holder.status.setText(Html.fromHtml("<font color='#ff0000'>" + m.getStatus() + "</font>"));
    }
    holder.thumbnail.setImageUrl(m.getImageUrl(), imageLoader);
}

2 个答案:

答案 0 :(得分:1)

强烈建议使用Picasso库。在项目中添加picasso库,然后编写代码,就像这样。

Picasso.with(getApplicationContext()).load(m.getImageUrl()).into(imageLoader);

而不是这一行

holder.thumbnail.setImageUrl(m.getImageUrl(), imageLoader)

答案 1 :(得分:1)

如果您希望更快地加载配置文件图像并占用更少的磁盘空间,我建议使用Glide over Picasso。 Glide和Picasso的比较是here。此外,我认为它将解决您的重复问题。

要使用Glide,请写下此行

Glide.with(context).load(m.getImageUrl()).into(holder.thumbnail);

而不是

holder.thumbnail.setImageUrl(m.getImageUrl(), imageLoader);

不要忘记将compile 'com.github.bumptech.glide:glide:3.7.0'添加到build.gradle