Предварительная выборка изображений с использованием Glide в Android

У меня есть действие, которое будет загружать изображения одно за другим в одном и том же изображении, используя анимацию постепенного исчезновения. Чтобы обеспечить хороший пользовательский интерфейс, я хочу предварительно получать изображения асинхронно и показывать их с постоянным потоком. Я хочу использовать скольжение для достижения вышеуказанного поведения. Но я сбит с толку, потому что в Интернете я нашел два разных подхода к предварительной выборке (кэшированию) изображений. Сначала используется метод .preload() Glide:

Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.preload()

Во-вторых, используется метод Glide .downloadOnly(int , int):

Glide.with(applicationContext)
.load(yourUrl)
.downloadOnly(500, 500);

У меня есть два вопроса:

  1. В чем разница между preload и downloadOnly и какой из них лучше всего подходит для моей ситуации?
  2. Как узнать, что все мои изображения были предварительно загружены, и я могу продолжить процесс показа изображений, используя один из вышеперечисленных (наилучших) подходов?

person Qandeel Abbasi    schedule 08.05.2016    source источник


Ответы (1)


См. документацию Glide здесь:

Документация по Glide

Найдите класс «DrawableTypeRequest», который имеет оба этих метода preload() и downloadOnly().

Как говорится в документации:

предварительная загрузка()

Предварительно загружает ресурс в кеш, используя Target.SIZE_ORIGINAL в качестве > целевой ширины и высоты. Эквивалентно вызову preload(int, int) с > > Target.SIZE_ORIGINAL в качестве ширины и высоты.

downloadOnly(целая ширина, целая высота)

Загружает исходные неизмененные данные в кеш и возвращает Future >, который можно использовать для извлечения файла кеша, содержащего данные.

Я бы предположил, что preload() подойдет вам.

person Ashutosh Chamoli    schedule 07.07.2017