TextView是我们开发中最最常用到的组件之一,最常用的功能主要是用来进行文字展示。可以设置文字的大小,颜色等效果等。如果觉得TextView的功能仅仅是用来显示文字的话,那就大错特错啦,更多的用处如展示图片,实现部分文字点击事件,实现诸如网址,手机号带链接等都能在TextView中一一实现。强大吧!
在项目中就经常用到TextView来显示Html格式的文字,今天就简单地贴一下。做个笔记。
-------------------------简单的布局main_test_html.xml,就一个TextView------------------------------
<?xml version="1.0" encoding="utf-8"?>
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp";
/>
-----------------------在Activity中实现展示html格式文字-------------------------------
public class TestActivity extends Activity {private TextView htmlTv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_test_html);
/**获得TextView控件*/
htmlTv = (TextView) findViewById(R.id.text);
/**我们自己拼凑Html格式字符串*/
String mHtmlStr = "Html TextView
";
mHtmlStr += "加粗斜体的文字
";
mHtmlStr += "带链接,点击直接跳新浪,呵呵";
/**要使用Html.fromHtml,把含HTML标签的字符串转换成可显示的文本(CharSequence:String,StringBuffer等的父类)样式*/
CharSequence charSequence = Html.fromHtml(mHtmlStr);
// 通过setText给TextView赋值
htmlTv.setText(charSequence);
/**************如果我们要给TextView上添加图片又怎么操作呢***************************************/
/**要用到Html类ImageGetter接口*/
ImageGetter imageGetter = new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id = Integer.parseInt(source);
Drawable drawable = getResources().getDrawable(id);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
};
/**通过下面的方法就可以显示图片了*/
htmlTv.setText(Html.fromHtml("", imageGetter, null));
}
}