TextView作为安卓的一个基础空间,如果仅仅是展示文本,那么TextView的作用就太小了,所以它还预定义了一些类似于HTML的标签,通过这些标签可以使TextView控件显示不同的颜色、大小、字体、图片、链接等。
1、载入html信息、显示链接
textView01 = (TextView)findViewById(R.id.textView01);
textView02 = (TextView)findViewById(R.id.textView02);
//添加一段html标志
String html = "<font color = 'red'>I Love Android</font><br>";
html += "<font color = '#0000ff'><big><i>I Love Android</i></big></font><br>";
html += "<big><a href = 'http://www.baidu.com'>百度</a></big>";
CharSequence charSequence = fromHtml(html);
textView01.setText(charSequence);
textView01.setMovementMethod(LinkMovementMethod.getInstance());
//点击时候产生超链接
textView01.setMovementMethod(LinkMovementMethod.getInstance());
String text = "我的URL:http://www.sina.com\n";
text += "我的email:abcd@163.com\n";
text += "我的电话:18936044502";
textView02.setText(text);
textView02.setMovementMethod(LinkMovementMethod.getInstance());
textView01载入了html的一段标志,第一段是通过<font color = '颜色'>文字</font>将I Love Android设置为红色;
第二段是通过<font color = '颜色'><big><i>文字</big></i></font>将I Love Android设置为蓝色,字体比周围的大一号并且设置为斜体.
第三段使用<a> 标签的 href 属性用于指定超链接目标的 URL,最后使用setMoveMethod(LinkMovementMethod.getInstance())完成超链接功能,效果图如下所示:
2、显示图片
获得Drawable中图片的id号
public int getResourceId(String name)
{
try {
//使用反射机制实现ID的加载
Field field = R.drawable.class.getField(name);
//取得返回资源id的字段
return Integer.parseInt(field.get(null).toString());
}catch (Exception e)
{
}
return 0;
}
载入图片
textView03 = (TextView)findViewById(R.id.textView03);
//设置textView的底色与文字颜色
textView03.setTextColor(Color.BLACK);
textView03.setBackgroundColor(Color.WHITE);
textView03.setTextSize(20);
String html_02 = "图像1<img src = 'smiley'/>图像2<img src = 'smiley_angry'/>";
html_02 += "图像3<a href = 'http://www.baidu.com'><img src = 'smiley_grin'/></a>";
CharSequence charSequence1 = Html.fromHtml(html_02, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String s) {
//获得系统资源的信息
Drawable drawable = getResources().getDrawable(getResourceId(s));
//处理图片文件,按照50%进行压缩
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/10, drawable.getIntrinsicHeight()/10);
return drawable;
}
}, null);
textView03.setText(charSequence1);
textView03.setMovementMethod(LinkMovementMethod.getInstance());
}