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

2017-08-25  本文已影响0人  我弟是个程序员

实现效果如图:

红线框中是一个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有四个参数,第一个参数是要改变的颜色,第二个参数是为文本颜色改变的起始位置,第三个为文本颜色改变的结束位置。最后一个参数为布尔型,可以传入以下四种:

上一篇 下一篇

猜你喜欢

热点阅读