Android ImageView用kotlin实现从内存加载图片

Android ImageView用kotlin如何实现从内存加载图片?

方法是使用Glide,不同的Glide版本可能代码会略有不同,但差别都不大。

以下代码使用的是Glide4.8.0版本

fun ImageView.loadFromMemory(bs: ByteArray) {
    Glide.with(this)
        .load(bs)
        .listener(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 {
                setImageDrawable(resource)
                if (resource is GifDrawable) {
                    resource.setLoopCount(LOOP_FOREVER)
                    resource.start()
                }
                return false
            }
        })
        .into(this)
}