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