我尝试从资产中检索位图,然后尝试使用 glide as 加载 Horizontal recyclerview 图像列表asBitmap()
。我得到了重复的图像和不匹配的图像(加载错误的图像代替所需的图像)。下面的屏幕截图显示笔记本电脑和手机加载了相同的位图,而Footware 和 Bus 加载了错误的位
图 .skipMemoryCache(true)
。
我想解决同样想使用滑翔缓存来加载图像。
尝试了此页面中建议的以下几点:
Glide recyclerview loading duplicate image
1)我添加了占位符。2)清除位图--> Glide.with(context).clear(holder.imgcat)
;或使用holder.imgcat.setImageBitmap(null)
;3)skipMemoryCache(true)
运行良好,但需要缓存来加载图像。
InputStream selectedInputStream = Application.get().getAssets().open(ImageSaver.selectedAssets + "/" + mValues.get(position).getImage_url());
Drawable selectedImagesDrawable = Drawable.createFromStream(selectedInputStream, null);
Bitmap selectedicon = ((BitmapDrawable) selectedImagesDrawable).getBitmap();
if(selectedInputStream != null) {
try {
selectedInputStream.close();
}catch (Exception e){
e.printStackTrace();
}
}
GlideApp.with(context)
.asBitmap()
.load(selectedicon)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(R.drawable.placeholder)
.placeholder(R.drawable.placeholder)
.into(holder.imgcat);
我在 set
.diskCacheStrategy(DiskCacheStrategy.RESOURCE
或
.diskCacheStrategy(DiskCacheStrategy.ALL)
.
skipMemoryCache(true)
运行良好,但需要缓存来加载图像