TextView是我们开发中最最常用到的组件之一,最常用的功能主要是用来进行文字展示。可以设置文字的大小,颜色等效果等。如果觉得TextView的功能仅仅是用来显示文字的话,那就大错特错啦,更多的用处如展示图片,实现部分文字点击事件,实现诸如网址,手机号带链接等都能在TextView中一一实现。强大吧!
在项目中就经常用到TextView来显示Html格式的文字,今天就简单地贴一下。做个笔记。
-------------------------简单的布局main_test_html.xml,就一个TextView------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/htm_tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp";
/>
</LinearLayout>
-----------------------在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 = "<font color =‘blue‘>Html TextView</font><br/>";
mHtmlStr += "<font color=‘#ff00ff‘><big><i>加粗斜体的文字</i></big></font><p>";
mHtmlStr += "<big><a href=‘http://www.sina.com‘>带链接,点击直接跳新浪,呵呵</a></big>";
/**要使用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("<img src=‘" + R.drawable.ic_empty + "‘/>", imageGetter, null));
}
}