在文本视图 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 标签。
如您所见,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
,它会像魔法一样有效。
我希望这能奏效。
干杯:)
因为我正在从服务中获取 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 标签。
如您所见,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
,它会像魔法一样有效。
我希望这能奏效。
干杯:)