Отображение layout вместо drawable в Glide

Как через Glide в placeholder и error отобразить layout. По умолчанию он требует ресурс drawable, но мне нужно отобразить именно layout. Как можно это сделать? Если нельзя есть иные пути?


Ответы (1 шт):

Автор решения: ЮрийСПб

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

  1. Скорее всего вам нужен просто слушатель ошибки загрузки, в котором вам надо скрывать/показывать вьюху с ошибкой:

     Glide.with(imageView)
     .load(imageUrl)
     .addListener(object : RequestListener<Drawable> {
         override fun onLoadFailed(
             e: GlideException?,
             model: Any?,
             target: Target<Drawable>?,
             isFirstResource: Boolean
         ): Boolean {
             // отобразите вьюху при ошибке
             return false
         }
    
         override fun onResourceReady(
             resource: Drawable,
             model: Any?,
             target: Target<Drawable>?,
             dataSource: DataSource?,
             isFirstResource: Boolean
         ): Boolean {
             // картинка успешно загрузилась
             return false
         }
     })
     .into(imageView)
    
  2. Либо сделайте таки картинку из вашей разметки вручную, поместите в ресурсы, и используйте как угодно.

  3. Ещё можно программно превратить вьюху в Bitmap и её отображать в ImageView

→ Ссылка