Как проверить, находятся ли изображения в памяти, прежде чем они будут сохранены снова? - PullRequest
0 голосов
/ 22 мая 2019

Я заметил, что при оптимизации производительности моего приложения Glide должен проверить, находится ли изображение в кеше. Теперь приходит хитрость в этом вопросе.

Как это работает?

Используя приведенный ниже код, я всегда сохраняю изображение снова в начале класса и загружаю.

Итак:

    Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).donloadOnly(new SimpleTarget <File>(){
        @Override
        public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation){
            OGGER.debug("Photo downloaded");

            }
    });

Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(image_profile);

или

Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).donloadOnly(new SimpleTarget <File>(){
    @Override
    public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation){
        OGGER.debug("Photo downloaded");

        Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(image_profile);
        }
});

Thx. :)

1 Ответ

0 голосов
/ 22 мая 2019

Как они упоминают в своих DOCS:

По умолчанию Glide проверяет несколько слоев кэшей перед началом нового запроса на изображение:

  1. Активные ресурсы - это изображение отображаетсяв другом представлении прямо сейчас?
  2. Кэш памяти - это изображение было недавно загружено и все еще находится в памяти?
  3. Ресурс - было ли это изображение ранее декодировано, преобразовано и записано в кэш диска?
  4. Данные - были ли данные, полученные из этого образа ранее, записаны в кэш диска?

Я настоятельно рекомендую вам прочитать их.https://bumptech.github.io/glide/doc/caching.html#caching-in-glide

Чтобы загрузить изображение в ivImg (ваш ImageView), вам нужно просто сделать следующее:

Glide.with(context)
.load("http://via.placeholder.com/300.png")
.into(ivImg);
...