效果图
文字中带链接,使用html a 标签
String html = "CSDN:<a href='http://blog.csdn.net'>CSDN</a>";// http://(https://)为必须。
tv.setText(Html.fromHtml(html));
tv.setMovementMethod(LinkMovementMethod.getInstance());
链接地址直接放在文字中
html = "CSDN:blog.csdn.net"; // http:// 非必须。
tv2.setText(html);
tv2.setAutoLinkMask(Linkify.ALL);
tv2.setMovementMethod(LinkMovementMethod.getInstance());
自定义文字中连接的点击事件
html = "<a href='qq_17513815'>我的CSDN</a>关关雎鸠,在河之洲。窈窕淑女,君子好逑<a href='qq_17513815'>我的CSDN</a>";
tv3.setText(Html.fromHtml(html));
tv3.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence charSequence = tv3.getText();
if (charSequence instanceof Spannable) {
int end = charSequence.length();
Spannable spannable = (Spannable) charSequence;
URLSpan[] urls = spannable.getSpans(0, end, URLSpan.class);
SpannableStringBuilder style = new SpannableStringBuilder(charSequence);
style.clearSpans();
for (URLSpan url : urls) {
MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
style.setSpan(myURLSpan, spannable.getSpanStart(url),
spannable.getSpanEnd(url),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv3.setText(style);
/**
* 链接点击处理
*/
private class MyURLSpan extends ClickableSpan {
private String mUrl;
public MyURLSpan(String url) {
mUrl = url;
}
@Override
public void onClick(View widget) {
if (!TextUtils.isEmpty(mUrl)) {
Uri uri = Uri.parse("http://blog.csdn.net/" + mUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
}
使用html显示各种颜色的text
String format = "没有查询到<font color='#FF0000'>%1s</font>数据";
tv4.setText(Html.fromHtml(String.format(format, "列表")));
TextView自己的滚动
tv5.setText("关关雎鸠,在河之洲。\n窈窕淑女,君子好逑。\n" +
"参差荇菜,左右流之。\n窈窕淑女,寤寐求之。\n" +
"求之不得,寤寐思服。\n悠哉悠哉,辗转反侧。\n" +
"参差荇菜,左右采之。\n窈窕淑女,琴瑟友之。\n" +
"参差荇菜,左右芼之。\n窈窕淑女,钟鼓乐之。");
tv5.setMovementMethod(ScrollingMovementMethod.getInstance()); //设置上下滚动
文字添加下划线: tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);