是否可以在同一TextView
中更改多个文本字符串的文本颜色?使用Html.fromHtml
无效:
textViewPrevChat.append("\n"+Html.fromHtml("<b>Bold string </b>")+somestringhere);
用粗体打印整个东西。此外,<p>
中的颜色属性无效。
答案 0 :(得分:3)
您应该使用SpannableString。以下是实现此目的的示例方法:
- 此示例更改字符串一半的颜色,并调整字符串另一部分的大小:
public static SpannableString categoryText(String label, String text, int colorIn) {
String strIn = label + " " + text;
SpannableString ss = new SpannableString(strIn);
ss.setSpan(new ForegroundColorSpan(colorIn), 0, label.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new RelativeSizeSpan(.80f), 0, label.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}