使用Glide
(v3.8.0)加载RecyclerView
中的图片列表时,我遇到了很多问题。
我正在尝试从服务器加载9张图像(jpg格式和1000 x 1000尺寸)。 Glide
下载少量图片并进行展示。但有些内容未下载,我必须重新打开Activity
才能下载剩余的图片。
以 Glide
下载图片。 Activity
变得越来越慢。滚动非常滞后。
以下是onBindViewHolder
的{{1}}。
RecyclerView
我在哪里弄错了?如何在滚动时加载所有图像并且不会出现任何延迟?
答案 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()。