我正在尝试为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。