Android-Kotlin 使用 Html.fromHtml() 加载 html 文本(接受后台传递的各种协议)

效果图:

Android-Kotlin 使用 Html.fromHtml() 加载 html 文本(接受后台传递的各种协议)_第1张图片

1. 纯文本直接使用  Html.fromHtml(resource: String)

2. 包含图片可使用 Html.fromHtml(resource: String, ImageGetter(), null)

其中的ImageGetter()是需要自己去继承实现的(即创建一个imageGetter类)

open class MImageGetter(internal var mTv: TextView, internal var mContext: Context) : Html.ImageGetter {
    override fun getDrawable(source: String): Drawable {
        val drawable = LevelListDrawable()
        Glide.with(mContext)
            .asBitmap()
            .load(source)
            .into(object : SimpleTarget() {
            override fun onResourceReady(resource: Bitmap, transition: Transition?) {
                if (resource != null) {
                    val bitmapDrawable = BitmapDrawable(resource)
                    drawable.addLevel(1, 1, bitmapDrawable)
                    drawable.setBounds(0, 0, resource.width, resource.height)
                    drawable.level = 1
                    mTv.invalidate()
                    mTv.text = mTv.text
                }
            }
        })
        return drawable
    }

}

 3.调用

tvContent.text = Html.fromHtml(resource, MImageGetter(tvContent, mContext), null)

其中,tvContent是用来接受后天传过来的内容的一个TextView

resource 是后台传过来的内容,

mContext 是活动的context,如果是在活动中可直接写入 this

你可能感兴趣的:(Android-Kotlin 使用 Html.fromHtml() 加载 html 文本(接受后台传递的各种协议))