今天在做项目的时候,有个需求要求点击一个文本跳转网页,而且该文本无下划线。本来以为很简单,就在网上查找TextView是否有属性可以直接设置,发现并没有(这个真可以有好么),网上都是一些百家之言,各有各的实现方法。于是,我综合一下网上的实现方案,就动手做起来。
其实,要实现TextView超链接样式的自定义,关键是该类ClickableSpan,其提供的重写样式的方法:
关键代码:
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.parseColor("#094486")); // 设置超链接文字颜色
ds.setUnderlineText(false); // 去掉超链接的下划线
}
就这几行代码,搞了一下午。。。
然后就是为TextView 设置带有超链接的文本:
关键代码:
SpannableString spannableString = new SpannableString(Html.fromHtml(MYURL));
Log.d(TAG, "url::"+Html.fromHtml(MYURL));
ClickableSpan clickableSpan = new NoLineClickableSpan(this, Html.fromHtml(MYURL).toString());
spannableString.setSpan(clickableSpan, 0, 4, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv_link.setText(spannableString);
tv_link.setMovementMethod(LinkMovementMethod.getInstance());
就这些啦,是不是觉得so easy ! ^_^
如果大家有更简单的方法,欢迎提出,大家共同学习进步!
最后附上示例源码:
http://download.csdn.net/download/osanyecao1234567/9175453