TextView使用超链接去掉下划线

项目中有一个小需求,就是在textview中支持web地址,这个属性好设置,在textview中配置文件加一行android:autoLink="web"搞定,可是默认的textview样式中带有下划线,连接颜色是蓝色,这个颜色好改,有专门的方法,关键是如何去掉下划线,百度一下发现了一种解决方案,可是普通文字也和文字成为了一个颜色,最后谷歌到一个老外的解决方案,管用了,现在和大家分享。

private class URLSpanNoUnderline extends URLSpan {
        public URLSpanNoUnderline(String url) {
            super(url);
        }
        @Override public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            ds.setUnderlineText(false);
        }
    }
定义这个类,主要是设置画笔不带下划线,然后定义一个方法,大家可以把这个方法加入工具类
private void stripUnderlines(TextView textView) {
                if(null!=textView&&textView.getText() instanceof Spannable){
            Spannable s = (Spannable)textView.getText();
            URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
            for (URLSpan span: spans) {
                int start = s.getSpanStart(span);
                int end = s.getSpanEnd(span);
                s.removeSpan(span);
                span = new URLSpanNoUnderline(span.getURL());
                s.setSpan(span, start, end, 0);
            }
            textView.setText(s);                
                }
}
搞定。

http://stackoverflow.com/questions/4096851/remove-underline-from-links-in-textview-android参考地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值