在同一文本视图中更改多个文本字符串的文本颜色

时间:2013-01-22 02:01:24

标签: android fonts textview

是否可以在同一TextView中更改多个文本字符串的文本颜色?使用Html.fromHtml无效:

textViewPrevChat.append("\n"+Html.fromHtml("<b>Bold string </b>")+somestringhere);

用粗体打印整个东西。此外,<p>中的颜色属性无效。

1 个答案:

答案 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;
    }