使用Html.fromHtml突出显示文本

时间:2012-03-05 13:40:21

标签: android html

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

我在multipleAutocompletetextview中覆盖了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实现的内容。我想为所选字符串添加背景。)

提前致谢

2 个答案:

答案 0 :(得分:3)

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.htmlhttp://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

答案 1 :(得分:1)

使用android中可用的SpannableString和BackgroundColorSpan。