Как сохранить изображения с помощью Picasso, чтобы не было времени загрузки? - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть приложение, в котором отображается цитата, а на заднем плане изображение. Когда я нажимаю кнопку «Далее», будет показана следующая цитата и будет загружено новое изображение. Загрузка занимает около 0,5 секунд, и изображение отображается в качестве заполнителя. Но когда я переключаюсь назад, время загрузки отсутствует.

Это означает, что изображение где-то сохраняется, поэтому его не нужно загружать снова. К сожалению, это только временно. Когда я вижу следующие 5 изображений и go возвращаюсь к первому, первое изображение необходимо загрузить снова. Поэтому я попытался загрузить все картинки в начале (это всего 25 картинок), например:

Picasso.get().load(backgrounds.get(1));
Picasso.get().load(backgrounds.get(2));
Picasso.get().load(backgrounds.get(3));
Picasso.get().load(backgrounds.get(4));
Picasso.get().load(backgrounds.get(5));
Picasso.get().load(backgrounds.get(6));
Picasso.get().load(backgrounds.get(7));

, и когда я нажимаю на кнопку «Далее», я использую это:

Picasso.get().load(backgrounds.get(counterBackground)).fit().noPlaceholder().into(background);

Но обе вещи без ожидаемого эффекта. Для изображений требуется время загрузки около 0,5, а noPlaceholder не работает, как ожидалось, заполнитель все еще там.

Итак, кто-то знает, как сократить время загрузки? Мол, как загрузить все изображения в начале?

Спасибо за каждый ответ!

1 Ответ

1 голос
/ 09 февраля 2020

Вы можете создать кеш при использовании Picasso, это приведет к более быстрому времени загрузки (пока кешируются изображения

Picasso picasso =  new Picasso.Builder(this).downloader(new OkHttpDownloader(getCacheDir(), 250000000)).build();
Picasso.setSingletonInstance(picasso);

источник

Вы можете использовать индикаторы, чтобы увидеть, откуда загружается изображение, используя

setIndicatorsEnabled(true)

source

Вы также можете использовать обратные вызовы для индикации завершения загрузки изображения

Вы можете увидеть более подробную информацию здесь

Редактировать

  1. Вы можете использовать Picasso.get().load(R.drawable.pic).into(imageview) Я думаю это будет работать и для mipmap, обычно mipmap используются для ошибок / заполнителей для ваших ресурсов (если вы не используете drawables)

Вы можете создавать свои собственные политики о том, как кэшировать / загрузить ваши изображения

Ссылка

...