你可以做的是使用Html.fromHtml()
function。
它将为您留下一个Spanned
- 类型的对象。您可以使用位置上的独立跨度来处理标签?
编辑标签的示例。 情境:带有html标签的文本,使用html.fromhtml工作。但有时这些网址是相对的(使用“/file.html”而不是“http://domain.com/file.html”),因此无法使用。发送spannable到我的函数下面找到一个URL的所有跨度并添加域。你可以使用其他服用点为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
这绝对看起来更像我所希望的。我将不得不一起玩,看看它是否能满足我需要的一切。 – penguin359 2011-04-09 12:33:26
我已经添加了一个例子来展示你可以做的一些事情:) – Nanne 2011-04-09 12:40:18