#android #kotlin #android-imageview #android-glide
Вопрос:
Как я могу отобразить размытое изображение, если оно не полностью получено с сервера/api? Я просто хочу сделать то же самое, что и с изображением профиля WhatsApp, то есть отображать необработанное изображение оригинала до тех пор, пока реальное изображение не загрузится.
Ответ №1:
Вы можете установить миниатюру до тех пор, пока не будет загружено исходное изображение.
Миниатюра-это в основном изображение низкого качества и небольшого размера, поэтому оно загружается мгновенно.
Скольжение обеспечивает более легкий способ сделать это.
Код
val thumbnailRequest = Glide.with(this)
.load("https://picsum.photos/50/50?image=0")
Glide.with(this)
.load("https://picsum.photos/2000/2000?image=0")
.thumbnail(thumbnailRequest)
.into(imageThumbnail)
Комментарии:
1. Миниатюра будет работать нормально, но она должна использовать другое изображение, которое содержит другое изображение с меньшим качеством, но что, если в моем ответе API есть только одно изображение?
2. Вам нужно обновить два возвращаемых изображения , одно полное и одно для полного качества. Если вы загружаете изображения со стороны приложения , вы можете загрузить 2 изображения, одно низкого качества и одно полное, и вернуть их на сервер соответственно. Если вам нужен только эффект загрузки размытия, вы можете загрузить полное изображение и размыть его в течение нескольких секунд, прежде чем показывать фактическое изображение
Ответ №2:
Уменьшите изображение до очень маленького размера, скажем, 8×8 пикселей. Отправьте эти данные клиенту для заполнения при запуске загрузки . Это не должно быть больше, чем 4 * 8 * 8 = 256 бит или 0,25 КБ в размере, поэтому отправка его клиенту не будет проблемой, независимо от того, насколько низкая скорость подключения клиента. Когда загрузка будет завершена, вы сможете перейти на исходное изображение.