2017-01-18 14 views
0

Я пытаюсь загрузить изображения (около 5 МБ каждый) в ImageView размером 45х45 дп в RecyclerView. Несмотря на то, что оригинальное изображение велико, не скользит ли загрузка меньшей версии, потому что целевой ImageView невелик? Итак, я ожидаю, что Glide загрузит изображения всего за несколько секунд со средней скоростью интернета. Но это занимает 20 секунд. В чем проблема?Glide занимает много времени, прежде чем отображать большие изображения.

Изображения хранятся в хранилище для базы.

код Glide:

Glide.with(context).load(firebaseStorageUrl).into(imageView); 

ответ

0

Glide необходимо загрузить полное изображение из Интернета, прежде чем он может изменить его размер. Поэтому загрузка занимает много времени в первый раз. Впоследствии он может использовать небольшое изображение из созданного кеша, если активировано кэширование.

+0

так что с файлами изображений на сервере размером более 1 мб просто неправильно? – user6650650

+0

Это действительно зависит от того, что вы планируете с ними делать. Если вам не требуется высокое разрешение, не храните его. Но если вам нужны версии с высоким разрешением для чего-то другого, вы также должны добавить небольшие версии в другую папку или с префиксом типа «thumb_», –

0

Если вы не хотите загружать файлы меньшего размера, я рекомендую использовать библиотеку Gif-drawable для загрузки больших изображений из Glide в GifDrawable (работает как ImageView).

Он может загружать файлы более 100 МБ очень быстро. Он работает с обычными JPG, PNG и BMP. Если это GIF, он воспроизводится без каких-либо задержек или замораживания.

Если чертежи, объявленные android: src и/or android: background являются GIF-файлами, тогда они будут автоматически распознаны как GifDrawables и анимированы. Если данный drawable не является GIF, то упомянутые представления работают как обычный ImageView и ImageButton.

0

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

  1. Храните изображение низкого качества на сервере.
  2. Используйте библиотеку загрузчика файлов, которая позволяет загружать изображения последовательно и асинхронно в виде очереди, что поможет быстро загрузить файл. FileDownloader библиотека - хороший вариант для этого.

 Смежные вопросы

  • Нет связанных вопросов^_^