实现一个TextView中设置文字的不同颜色

实现效果如图:

实现一个TextView中设置文字的不同颜色_第1张图片
红线框中是一个TextView
    if (remark.getIsReviewType() == 1) {//1: 二级评论回复一级评论 ;2:二级评论回复二级评论
            holder.tv_r_remark.setText(remark.getReviewContent());
        } else {
            SpannableString spannableString = new SpannableString("回复" + "@" + remark.getReceiveNickName() + remark.getReviewContent());
            spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#507DAF")), "回复".length(), "回复@".length() + remark.getReceiveNickName().length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

            holder.tv_r_remark.setText(spannableString);
        }

SpannableString 构造函数的参数为你要改变的文本。setSpan方法有四个参数,ForegroundColorSpan是为文本设置前景色,也就是文字颜色。如果要为文字添加背景颜色,可替换为BackgroundColorSpan。

ForegroundColorSpan有四个参数,第一个参数是要改变的颜色,第二个参数是为文本颜色改变的起始位置,第三个为文本颜色改变的结束位置。最后一个参数为布尔型,可以传入以下四种:

  • Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
  • Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
  • Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终-
  • Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标

你可能感兴趣的:(实现一个TextView中设置文字的不同颜色)