У меня есть приложение с длинной загрузкой изображений. Я хочу предварительно загрузить предстоящие изображения, чтобы пользователи видели меньше (в идеале нет) задержки при появлении изображений на экране.Горизонтальная предварительная загрузка работает только в том случае, если задан размер
Я пытаюсь использовать разные варианты preload() и downloadOnly(), и единственная комбинация, которая, кажется, работает, имеет как предварительную нагрузку, так и нагрузку, использует точные параметры того же размера.
Предварительная загрузка:
Glide.with(AbstractFeedFragment.this)
.load(picture.getUrl())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.preload();
Преднатяг() здесь такая же, как с использованием предварительной нагрузки (Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
Загрузка реальное изображение в ImageView, когда речь идет на экране:
requestManager
.load(url)
// Use the same dimensions used as when preloading.
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.placeholder(placeholderColor)
.error(R.color.image_fallback_bg)
.dontTransform()
.into(imageView);
Если удалить переопределение или методы dontTransform, изображение получает загружал второй раз, когда он приходит на экране (хотя я просто поджат его).
Я что-то не так? Я понял, что DiskCacheStrategy.ALL поместит исходное изображение в кеш, который затем будет извлекаться и изменяться при отображении его на самом деле.
Есть ли способ загрузить изображение без указания SIZE_ORIGINAL при его фактическом отображении? Если я правильно понимаю это означает, что теперь я показываю изображение в полном размере, а не в правильном размере для моего ImageView.