TextView自定义超链接样式

今天在做项目的时候,有个需求要求点击一个文本跳转网页,而且该文本无下划线。本来以为很简单,就在网上查找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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值