使用Html.fromHtml高亮显示文本



我正在尝试为MultiAutoCompleteTextView中的字符串添加背景色。

我正在多重自动完成文本视图中重写replaceText方法,试图用像这样的html替换字符序列

@Override
protected void replaceText(CharSequence text) {
    // TODO Auto-generated method stub
    String styledText = "<font color='red'>"+text+"</font>.";
    super.replaceText(Html.fromHtml(styledText));
}

这很好用。我可以更改字体颜色。但是我想为字体添加背景色。有人能建议我如何做到这一点吗?

(我们在创建问题时添加标签的方式,与我试图使用MultiAutoCompleteTextView实现的方式相同。我想为所选字符串添加背景。)

提前感谢

Html.fromHtml不支持设置背景色。

您必须从Html.fromHtml返回SpannedString,并将BackgroundColorSpan设置为要设置背景色的文本。

类似于:

new SpannableString(styledText).setSpan(
    new BackgroundColorSpan( Color.YELLOW), 0, styledText.length(),
      Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

另请参阅:http://developer.android.com/reference/android/text/SpannableString.html,http://developer.android.com/reference/android/text/style/package-summary.html

您还可以将自己的TagHandler传递到Html.fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)中,以支持其他HTML标记。看见http://developer.android.com/reference/android/text/Html.TagHandler.html

使用android中提供的SpanableString和BackgroundColorSpan。

最新更新