gpt4 book ai didi

Android - Html.fromHtml 句柄背景颜色

转载 作者:搜寻专家 更新时间:2023-11-01 07:59:12 25 4
gpt4 key购买 nike

我有需要在 TextView 中显示的 html 文本。 html 可能看起来像这样 -

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

最佳答案

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
String str = "<span style=\"background-color:#f3f402;\">" + TEXT TO HIGHLIGHT + "</span>";
textView.setText(Html.fromHtml(str, Html.FROM_HTML_MODE_LEGACY));
} else {
String str = "<font color='#f3f402'>" + TEXT TO HIGHLIGHT + "</font>";
textView.setText(Html.fromHtml(str));
}

更多 - https://stackoverflow.com/a/46035856/3625510

关于Android - Html.fromHtml 句柄背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666436/

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