改变字符串中某段文字的颜色

在开发中有时会遇到要改变字符串中某几个词的字体颜色,自己整理了几种方法:

第一种:

在请求数据时让后台将要变红的文字使用HTML的<font>标签包含一下,前端使用html.fromhtml(字符串);这样也可以使文字变色;

第二种是:

public class StringFormatUtil {
    private SpannableStringBuilder spBuilder;
    private String wholeStr, highlightStr;
    private Context mContext;
    private int color;
    private int start = 0, end = 0;
     
     
    /**
     *
     * @param context
     * @param wholeStr 全部文字
     * @param highlightStr 改变颜色的文字
     * @param color 颜色
     */
    public StringFormatUtil(Context context,String wholeStr,String highlightStr,int color){
        this.mContext=context;
        this.wholeStr=wholeStr;
        this.highlightStr=highlightStr;
        this.color=color;
         fillColor();
         
    }
     
     
    public StringFormatUtil fillColor(){
        if(!TextUtils.isEmpty(wholeStr)&&!TextUtils.isEmpty(highlightStr)){
            if(wholeStr.contains(highlightStr)){
                /*
                 *  返回highlightStr字符串wholeStr字符串中第一次出现处的索引。
                 */
                start=wholeStr.indexOf(highlightStr);
                end=start+highlightStr.length();
            }else{
                return null;
            }
        }else{
            return null;
        }
        spBuilder=new SpannableStringBuilder(wholeStr);
        color=mContext.getResources().getColor(color);
        CharacterStyle charaStyle=new ForegroundColorSpan(color);
        spBuilder.setSpan(charaStyle, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        return this;
    }
     
     
    public SpannableStringBuilder getResult(){
        if (spBuilder != null) {
            return spBuilder;
        }
        return null;
    }

肯定还有很多的方法,大家自己发现了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值