gpt4 book ai didi

android - 从 TextView 中的链接中删除下划线 - Android

转载 作者:IT老高 更新时间:2023-10-28 13:09:22 26 4
gpt4 key购买 nike

我正在使用两个 textview 来显示来自数据库的链接,我设法更改了链接颜色但我想删除下划线

email.setText(c.getString(5));
website.setText(c.getString(6));
Linkify.addLinks(email, Linkify.ALL);
Linkify.addLinks(website, Linkify.ALL);

我可以通过 XML 或代码做到这一点吗?

最佳答案

您可以在代码中执行此操作,方法是查找 URLSpan 实例并将其替换为不带下划线的版本。调用 Linkify.addLinks() 后,调用粘贴在每个 TextView 上的函数 stripUnderlines():

    private void stripUnderlines(TextView textView) {
Spannable s = new SpannableString(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);
}

这需要自定义版本的 URLSpan,它不启用 TextPaint 的“下划线”属性:

    private class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}

关于android - 从 TextView 中的链接中删除下划线 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com