使用Android SpannableString设置TextView局部文字颜色

样式文件:

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="欢迎来到枫林的小窝!"/>

代码文件:

private void initTextView() {
    TextView textView = findViewById(R.id.textView);
    SpannableString spannableString = new SpannableString(textView.getText());
    setTextColor(spannableString, "枫林的小窝", Color.BLUE);
    textView.setText(spannableString);
}

/**
 * 设置SpannableString指定文字的颜色
 *
 * @param spannableString
 * @param text
 * @param color
 */
private void setTextColor(SpannableString spannableString, String text, int color) {
    int start = spannableString.toString().indexOf(text);
    int end = start + text.length();
    spannableString.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}

参考链接:

Android开发 SpannableString开发详解

Android UI——SpannableString详细解析

发表评论