我有一个要在回收站视图中显示的图像列表。我正在使用Glide lib加载图像。一切正常,并且工作正常,但令人讨厌的事情使我作为开发人员的生活变得非常艰难。当我向上/向下滚动回收站视图时,Glide会保留旧的位置参考,并在滚动停止后对图像进行混洗以设置实际的位置。正在从cloudinary URL以及设备本地存储路径加载图像。我在下面发布我的代码。任何人对这个问题有任何线索或答案,请帮助我。预先感谢。
RequestOptions requestOptions = new RequestOptions()
.skipMemoryCache(false)
.signature(new MediaStoreSignature("IMAGE",System.currentTimeMillis(),0))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.override(100, 100)
.placeholder(R.drawable.bg_round_corner_imageview)
.error(R.drawable.bg_round_corner_imageview);
Glide.with(mContext)
.setDefaultRequestOptions(new RequestOptions()
.placeholder(R.mipmap.ic_launcher))
.asBitmap()
.load(urlProfileImage)
.thumbnail(0.1f)
.apply(requestOptions)
.placeholder(R.drawable.bg_round_corner_imageview)
.error(R.drawable.bg_round_corner_imageview))
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable
Transition<? super Bitmap> transition) {
view.setImageBitmap(resource);
view.setBackground(mContext.getResources() .getDrawable(R.drawable.bg_round_corner_imageview));
view.setClipToOutline(true);
}
});
答案 0 :(得分:0)
基本上,此行引起滚动滚动回收器视图时将它们显示为两倍的问题。您应该为指南正确选择缓存策略。
而不是您应该使用
.diskCacheStrategy(DiskCacheStrategy.NONE)
答案 1 :(得分:0)
尝试覆盖适配器中的 onViewRecycled 方法并设置默认/占位符图像。
例如
@Override
public void onViewRecycled(ViewHolder holder) {
super.onViewRecycled(holder);
Glide.with(mContext).load(R.drawable.bg_round_corner_imageview).into(holder.imageview);
}
答案 2 :(得分:0)
我认为您已经为检查 urlProfileImage 是否为空
设置了一些条件如果为null,则不调用glide并且setVisibility == False,
如果不为null,则使用glide和setVisibility == TRUE加载Image。