#android #android-glide
Вопрос:
Я хочу указать какой-либо ресурс Android, который будет отображаться, когда Glide не сможет загрузить целевое изображение из Интернета, поэтому я использую этот error()
метод. Моя проблема в том, что при сбое последующих load()
s интернет-изображений файл ресурсов отображается все время, но с видимым миганием (например, при перезагрузке) после каждого вызова load()
. Я не хочу, чтобы это мигание было видно.
Мой код прост:
GlideApp.with(fragment)
.load(imageUrl)
.error(resourceId)
.into(view)
Что происходит:
1. Trying to load url1 -> fail -> resource with resourceId is displayed
2. Trying to load url2 -> fail -> blink -> resource with resourceId is displayed
3. Trying to load url3 -> fail -> blink -> resource with resourceId is displayed
В таком случае я хотел бы видеть неподвижное изображение, не моргая.
Интересно то , что когда я использую placeholder()
вместо error()
, для неудачной загрузки этих URL-адресов, я получаю неподвижное изображение-заполнитель, не мигая:
GlideApp.with(fragment)
.load(imageUrl)
.placeholder(resourceId)
.into(view)
Еще один интересный факт, который я обнаружил, заключается в том, что без попыток загрузки URL-адресов из Интернета, просто пытаясь отобразить ресурс Android (resourceId), также не мигает после последующих вызовов:
GlideApp.with(fragment)
.load(resourceId)
.into(view)
Таким образом, похоже, что проблема (мигание/перезагрузка) видна только при использовании error()
метода.
Все resourceId
значения в приведенных выше примерах являются одним и тем же ресурсом.
РЕДАКТИРОВАТЬ: В этом случае воспроизводится точно то же самое:
GlideApp.with(fragment)
.load(imageUrl)
.error(ColorDrawable(Color.RED))
.into(view)
Комментарии:
1. Это также воспроизводится с изображениями, загруженными по http (внутренняя ошибка ()), а не только с рисоваемыми ресурсами Android.
2. Такое же мигание можно увидеть при использовании только
.error(ColorDrawable(Color.RED))