效果图:
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