1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > TextView使用超链接去掉下划线

TextView使用超链接去掉下划线

时间:2022-10-09 23:22:29

相关推荐

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);

}

}

搞定。

/questions/4096851/remove-underline-from-links-in-textview-android参考地址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。