天天看点

TextView部分文本加粗 Html.fromHtml

前情:客户提了个关键字加粗的需求,一个textview内部分加粗,这种需求一般都通过spannable设置好效果后赋值给textview,但是考虑到这个项目里需要改动的地方比较多且文本都已经设置在了String。xml文件里了,这时可以考虑使用html标签了

支持条件:android的textview很早就有支持部分的html标签如<a href=“www.baidu.com”>可以很方便的对一个关键字添加一个跳转到百度的链接,同样我这里可以使用<b>标签来加粗。其他相关支持的标签可以自行百度

由于在调用xml的文本getString 方法会过滤html标签,所以我们需要对这些标签做个处理

<b>加粗</b>

我们可以用 &lt; 代替 < 符号

效果:

\&lt; b>加粗\&lt; /b> 或者如果标签比较多我们也可以用\<data>标签全括起来 效果:

<Data><![CDATA[ <b>加粗</b> ]]> </Data>

使用之后再赋值的时候就可以直接使用方法了

textview.setText(Html.fromHtml(getString(R.String.设置的文本name))))

新的版本官方将该方法设置为弃用,但是新的方法也只是多了个参数,

textview.setText(Html.fromHtml(getString(R.String.设置的文本name),Html.FROM_HTML_MODE_LEGACY)))

这个参数也是老的方法的默认参数,这给与了我们更大的自主性

PS:如果设置了html标签记得不要忘记括上fromHtml方法,否则你的文本内的html标签可能直接被暴露出来