在Android上使用Glide with RecyclerView时,不会下载所有图像

时间:2017-10-26 13:23:59

标签: android android-recyclerview android-glide

使用Glide(v3.8.0)加载RecyclerView中的图片列表时,我遇到了很多问题。

  1. 我正在尝试从服务器加载9张图像(jpg格式和1000 x 1000尺寸)Glide下载少量图片并进行展示。但有些内容未下载,我必须重新打开Activity才能下载剩余的图片。

  2. Glide 下载图片。 Activity 变得越来越慢。滚动非常滞后。

  3. 以下是onBindViewHolder的{​​{1}}。

    RecyclerView

    我在哪里弄错了?如何在滚动时加载所有图像并且不会出现任何延迟?

2 个答案:

答案 0 :(得分:0)

您可以使用Glide从URL轻松加载图片,而无需为所有人​​创建位图。我认为这个过程对你来说是不必要的。

Glide.with(context).load(galleryList.get(itemPosition).getImage())
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.dontAnimate()
.override(150,150) // Customize size as per requirement
.placeholder(ContextCompat.getDrawable(context, R.mipmap.ic_user_placeholder_50dp))
.listener(new RequestListener<String, GlideDrawable>() {
    @Override public boolean onException(Exception e, String model,
        Target<GlideDrawable> target, boolean isFirstResource) {
        return false;
    }

    @Override public boolean onResourceReady(GlideDrawable resource, String model,
        Target<GlideDrawable> target, boolean isFromMemoryCache,
        boolean isFirstResource) {
        return false;
    }
})
.into(holder.kolamImage);

希望它会有所帮助...

答案 1 :(得分:0)

可能有垃圾收集SimpleTarget对象的可能性。因此,有时您的图像不会在图像视图中设置。为了解决这个问题,你应该使用builder类的into()方法设置目标图像视图,并通过占位符()方法放置一个占位符来显示加载。并在图像视图上实现onclick()。