我有HTML文本,我需要在TextView中顯示。 html可能看起來像這樣 -Android - Html.fromHtml句柄背景顏色
<font color="#AFEEEE"><font style="background-color: rgb(255,140,0);">Text with background and color</font></font>
Html.fromHtml不支持除字體標記顏色之外的任何其他屬性。但我們絕對必須展示背景。我可以編寫自定義標記處理程序,但屬性不會傳入,只傳遞標記。 實現此目的的最佳方法是什麼?
注意:不能使用Webview。
我試了下面的代碼。如果我在文本上設置了raw,它就可以工作,但如果我進一步處理它並將其傳遞給Html.fromHtml,它不會顯示背景。
public static final String sText =
"Background on <font style=\"background-color: rgb(255,255,0);\">pa</font>rt text only";
Pattern pattern = Pattern.compile(BACKGROUND_PATTERN);
Matcher matcher = pattern.matcher(sText);
SpannableString raw = new SpannableString(sText);
BackgroundColorSpan[] spans =
raw.getSpans(0, raw.length(), BackgroundColorSpan.class);
for (BackgroundColorSpan span : spans) {
raw.removeSpan(span);
}
while (matcher.find()) {
raw.setSpan(new BackgroundColorSpan(0xFF8B008B),
matcher.start(2), matcher.start(2) + matcher.group(2).length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
sText = raw.toString();
final Spanned convertedHtml =
Html.fromHtml(sText, ig, new myTagHandler());
使用jsoup來解析HTML,以訪問樣式對象和背景色中,然後設置顏色爲背景,以您的觀點。 – njzk2