Glide поддерживает GIF в качестве заполнителя.Я недавно столкнулся с этой ситуацией и решил ее, как показано ниже.Надеюсь, что это поможет кому-то вроде меня, кто сталкивается с этой ситуацией.
var builder = Glide.with(mContext).load(path).apply(options).thumbnail(Glide.with(mContext).load(R.raw.loader2))
if (listener == null) {
builder = builder.addListener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
//TODO; your code here
return false
}
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
//TODO; your code here
return false
}
})
} else {
builder = builder.addListener(listener)
}
builder.into(myImageView)
Что он делает
Он загружает ваш GIF в качестве эскиза, пока изображение не будет загружено из источника,Внутри метода onResourceReady он даст вам обратный вызов, когда ресурс будет готов.Обязательно поместите файл gif в пакет R.raw , а не в пакет для рисования.Дайте мне знать, если у вас возникнут какие-либо проблемы.