说明
Android开发过程中,对TextView操作是无时不刻的操作,Textview富文本有时可以给我们很丰富的展示效果。Android中提供了Html工具类,提供了HTML到Android原生的转换功能。其实原理还是解析Html然后在转成SpannableString再给TextView显示,下面就来简单记录一下其用法。
用法示例1
用法很简单,直接用Html工具转换就行
binding.tx2.text = Html.fromHtml("<font color='#2698b3'>从前</font>有座山")
用法示例2
可以加载图片等类型
val htmlContent = "<p><font size=\"3\" color=\"red\">先帝创业未半而中道崩殂</font></p>" +
"<b><font size=\"5\" color=\"blue\">今天下三分</font></font></b></br>" +
"<h1>益州疲弊,此诚危急存亡之秋也</h1></br>" +
"</p><img src=\"http://n.sinaimg.cn/sinacn/w450h212/20171223/16c3-fypvuqf3150782.jpg\""
Thread {
val mSpanned = Html.fromHtml(htmlContent, { source ->
var drawable: Drawable? = null
try {
var bitmap = Glide.with(this).load(source).asBitmap().into(200,200).get()
drawable = bitmap.toDrawable(resources)
drawable.setBounds(0, 0, 200, 200);//设置图片显示范围
} catch (e: IOException) {
e.printStackTrace()
}
drawable!!
}, null)
runOnUiThread { binding.tx2.text =mSpanned }
}.start()
总结
这种方式用得其实不多,但对一下css高手来说也是很有用的。当然还可以用这个工具反向生成xml,这个对需要储存样式来说,还是有些用的,这个就不仔细说了,感兴趣的同学可以自行验证一下。
网友评论