为你的Android TextView添加Html标签属性
nisf7805
8年前
<p>最近遇到了一个需要将一串字符串分段以不同的字体、颜色、大小显示到View中的问题,本来很简单,我们在布局多开几个TextView分别设置格式就行了,但同事说有其他更简洁的办法。一查资料还真发现TextView竟然支持Html标签!</p> <p>通过 Html 类将我们的标签字符转换一下,然后直接设置给View就可以达到分段变换格式的目的了。下面简单罗列三种比较常见的用法:</p> <ul> <li> <p>1.变换字体大小和颜色</p> </li> </ul> <pre> <code class="language-java">String pre = "pm"; String time = "18:00"; mText.setText(Html.fromHtml("<b><small><font color=#ff0000>" + pre + "</b><small/><font/>" + "<big>" + time + "</big>"));</code></pre> <ul> <li> <p>效果图</p> <p><img src="https://simg.open-open.com/show/574af3fea5c6dc3cc037767910007b5b.png"></p> </li> <li> <p>2.换行、斜体</p> <pre> <code class="language-java">String skew = "the same textview"; mText.setText(Html.fromHtml(skew+"<br />"+"<i>"+skew));</code></pre> </li> <li> <p>效果图</p> <p><img src="https://simg.open-open.com/show/3b1aa5895654a49659d512e6eb759423.png"></p> </li> </ul> <ul> <li> <p>3.超链接(其实在布局中通过android:autoLink属性设置最简单)</p> </li> </ul> <pre> <code class="language-java">String baidu="百度"; mText.setText(Html.fromHtml("<a href=\"http://www.baidu.com\">"+baidu)); mText.setMovementMethod(LinkMovementMethod.getInstance());</code></pre> <p>如果没通过 setMovementMethod 方法为该链接添加响应,是不会生效的哦~</p> <ul> <li> <p>效果图</p> <p><img src="https://simg.open-open.com/show/6bb8ced281153b12dc4c7ea4f2cd1cac.png"></p> </li> </ul> <h3> </h3> <p> </p> <p>来自:http://www.jianshu.com/p/f21866698bd8</p> <p> </p>