在 Android 中使用 Textview 显示HTML文本
一、TextView 类中的 HTML 标签
在 TextView 类中预定义了一些类似 HTML 的标签,通过这些标签,可以使 TextView 控件显示不同的颜色、大小、字体的文字。
- <font>:设置颜色和字体
- <big>:设置大号字
- <small>:设置小号字
- <i>:斜体
- <b>:粗体
- <tt>:等宽字体(Monospace)
- <br>:换行(行与行之间没有空行)
- <p>:换行(行与行之间的空行)
- <a>:链接地址
- <img>:插入图像
这些标签虽然和HTML的标签类似,但并不具备HTML标签的全部功能。如<font>标签只支持color和face两个属性。
在使用这些标签时不能将带这些标签的字符串直接赋值到TextView上,而需要使用Html.frmHtml方法将带标签的字符串转换成CharSequence对象,再赋值给TextView。
如果想在显示的文本中将URL、E-mail、电话等特殊内容高亮显示,并在单击时触发相应的动作(如单击电话会直接在拨号界面显示电话号码),可以设置<TextView>标签的android:autoLink属性,该属性可设置的属性值如下:
- none:不匹配任何链接(默认)
- web:匹配Web网址
- email:匹配E-mail地址
- phone:匹配电话号码
- map:匹配映射地址
- all:匹配所有的链接
二、示例
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtFirst=(TextView)findViewById(R.id.txtFirst);
String html="<font color='red'>样式一</font> <br>";
html+="<font color='#0000FF'> <big> <i> 样式二 </i> </big> <font>";
html+="<font color='@"+android.R.color.white+"'> <tt> <b> <big> <u> 样式三 </u> </big> </b> </tt> </font> <br>";
html+="<big> <a href='http://blog.csdn.net/a_mean'>我的博客:http://blog.csdn.net/a_mean </a> </big>";
CharSequence charSequence=Html.fromHtml(html);
txtFirst.setText(charSequence);
//该语句在设置后必加,不然没有任何效果
txtFirst.setMovementMethod(LinkMovementMethod.getInstance());
}
}