我正在尝试使用html格式化(添加样式)某些文本并将其设置为textview的文本
Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE);
但是Html()方法返回已删除所有空格的Spanned字符串。我曾尝试使用html标签,例如<pre>
,但它没有帮助..
它应该像this一样很好地显示(html标签后来用from Html()方法删除)但是所有的空格都被删除了,它看起来像this(当它在ui中设置为文本,看起来像一个大的连续段落。)
有人对此有任何线索吗?
以防万一有人想看到完整的代码:
String SelectedSentence =allText.substring(lastPoint, nextPoint);
String highlighted = "<font color='red'>"+SelectedSentence+"</font>";
StringBuilder newAllText = new StringBuilder(allText);
newAllText.delete(lastPoint, nextPoint+1);
newAllText.insert(lastPoint,highlighted);
newAllText = new StringBuilder("<pre>"+newAllText+"</pre>");
Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE);
lastPoint = nextPoint;
答案 0 :(得分:0)
好吧,我放弃了HTML文本样式的整个方法,只使用了SpannableStringBuilder来获得我想要的效果
highlighted = new SpannableStringBuilder(sb);
highlighted.removeSpan(new BackgroundColorSpan(Color.YELLOW));
highlighted.setSpan(new BackgroundColorSpan(Color.YELLOW),lastPoint, nextPoint, 0);