在文本视图 android 中设置 Span 样式 HTML 文本

Set Span style HTML text in Text View android

因为我正在从服务中获取 html 文本,所以我需要在文本视图上显示文本。

Managing Safely <b> End Of Course Theory Test </b> <span style="color:red;"> part1 </span>

我将此文本设置为

tv.settext(Html.fromHTML("Managing Safely <b> End Of Course Theory Test </b> <span style="color:red;"> part1 </span>"));

显示为粗体但未显示红色文本。

您必须使用以下代码来显示来自 html

的数据
tv.settext(Html.fromHTML("Managing Safely <b> End Of Course Theory Test </b> <font color='red'>simple</font>"));

单独输入文字

TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));

或使用 spannable 字符串

text.setText("");
text.append("Add all your funky text in here");
Spannable sText = (Spannable) text.getText();
sText.setSpan(new BackgroundColorSpan(Color.RED), 1, 4, 0);

使用此库支持所有 html 标签。

https://github.com/NightWhistler/HtmlSpanner

如您所见,HTML Tags Supported By TextView HTML span 标签不受 Html.fromHtml 支持。

所以你应该 return 只支持来自服务器的标签,例如 font,div,p,... 或使用 webview 显示所有 html 标签

正如@ρяσѕρєя K 在上面所说 HTML span 标签不受 Html.fromHtml.

支持

您应该更改服务
或者
在您的代码中添加以下行,它将跨度颜色 html 更改为字体标签,至少在您的情况下。

String yourHtmlText = yourHtmlText.replace("span style=\"color:", "font color='").replace(";\"","'").replace("</span>", "</font>");  

对于其他人,我建议根据您的需要经常使用 String.split,它会像魔法一样有效。

我希望这能奏效。
干杯:)