然后String.replace更改替换单词的颜色

时间:2017-10-01 01:42:48

标签: android

String string = "Change this color"
string.replace("this", "");

如何更改单词的颜色"这个"通过replace()方法?

1 个答案:

答案 0 :(得分:1)

search不能用于更改字符串的外观,Neha's答案也是正确的,但更好的方法是使用Spannable类,以下函数更改String的颜色{字符串text中的{1}}并返回一个spannable对象

 private Spannable getSpannableText(String text, String search, Context context) {
    int initialOffset = text.toLowerCase().indexOf(search.toLowerCase(), 0);
    Spannable spannableText = new SpannableString(text);
    for (int ofs = 0; ofs < text.length() && initialOffset != -1; ofs = initialOffset + 1) {
        initialOffset = text.toLowerCase().indexOf(search.toLowerCase(), ofs);
        if (initialOffset == -1) {
            break;
        } else {
            //highlighting with color red
            spannableText.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.red)), initialOffset, initialOffset + search.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
    return spannableText;
}

然后您可以按如下方式使用它,

 tv_text.setText(getSpannableText("Change this color","this", context), TextView.BufferType.SPANNABLE);