您可以做的是使用该Html.fromHtml()
功能。
它会给你一个Spanned
- 类型的对象。您可能会使用位置上的单独跨度来处理标签?
编辑标签的示例。情况:带有 html 标签的文本,使用 html.fromhtml 工作。但有时 url 是相对的(使用“/file.html”而不是“http://domain.com/file.html”),因此无法使用。将 spannable 发送到下面的函数会找到 URL 的所有 span 并添加域。您可以为您的特定标签使用 somehting else ofcourse:
protected Spanned correctLinkPaths (Spanned spantext) {
Object[] spans = spantext.getSpans(0, spantext.length(), Object.class);
for (Object span : spans) {
int start = spantext.getSpanStart(span);
int end = spantext.getSpanEnd(span);
int flags = spantext.getSpanFlags(span);
if (span instanceof URLSpan) {
URLSpan urlSpan = (URLSpan) span;
if (!urlSpan.getURL().startsWith("http")) {
if (urlSpan.getURL().startsWith("/")) {
urlSpan = new URLSpan("http://www.domain.com" + urlSpan.getURL());
} else {
urlSpan = new URLSpan("http://www.domain.com/" + urlSpan.getURL());
}
}
((Spannable) spantext).removeSpan(span);
((Spannable) spantext).setSpan(urlSpan, start, end, flags);
}
}
return spantext;
}
我不确定这是最有效的方法,它是我第一次与 spannables 的连接之一,但至少它展示了一些可以用 spannables 做的技巧:D