Я попытался извлечь растровое изображение из ресурсов, а затем попытался загрузить горизонтальный список изображений в режиме повторного просмотра, используя glide как asBitmap()
.Я получаю дубликаты изображений и изображения несоответствия (загрузка неправильного изображения вместо требуемого изображения).На приведенном ниже снимке экрана показано, что для ноутбуков и мобильных телефонов загружено одинаковое растровое изображение и Для Footware and Bus загружен неправильный растровый рисунок Это хорошо заработало после удаления кеша скольжения с помощью.skipMemoryCache(true)
.
Я хочу разрешить ту же проблему: использовать Glide Cache для загрузки изображений.
Пробовал следующие пункты, которые были предложены на этой странице: Glide recyclerview loading duplicateimage 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);
Я получаю дублирующиеся изображения и изображения с несоответствием (загрузка неправильного изображения вместо требуемого изображения) при установке .diskCacheStrategy(DiskCacheStrategy.RESOURCE
)или .diskCacheStrategy(DiskCacheStrategy.ALL)
.
skipMemoryCache(true)
работал хорошо, но для загрузки изображений требуется кэш