为你的Android TextView添加Html标签属性

nisf7805 7年前
   <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>