Android之实现指定文字变色的方法

2020-09-03  本文已影响0人  Amy木婉清

第一种情况:从哪儿到哪儿固定的换文字颜色

//XXXXXXX   MMMMM是你自定义的文字 即从后端接口获得的变换文字
String warehouseIn ="XXXXXXX";
        String warehouseOut = "MMMMM";
        String insertedNumStr = mContext.getString(R.string.ex_warehouse_in,warehouseOut,warehouseIn);
        //字体大小颜色不同
        SpannableString spannableString = new SpannableString(insertedNumStr);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#0F41A6")), 3, warehouseOut.length()+3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#44D7B6")), insertedNumStr.lastIndexOf(":")+1, insertedNumStr.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        holder.tvExIn.setText(spannableString);

第二种情况:部分指定文字规定颜色:

  SpannableString spannableString = new SpannableString(insertedNumStr);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#0F41A6")), 6, insertedNumStr.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        holder.tvOrderNumber.setText(spannableString);

第三种:指定一段字符串中某几个字体颜色

        SpannableString ss = new SpannableString("一般为值班人员岗位职责");
        ss.setSpan(new ForegroundColorSpan(Color.parseColor("#FA6400")), 3, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        holder.tvIntroduce.setText(ss);

第四种情况:直接指定某段文字颜色:

//设置文字颜色
    holder.tvGoodsNumber.setTextColor(ContextCompat.getColor(mContext,R.color.colorHint));
    holder.TVSupplier.setTextColor(ContextCompat.getColor(mContext,R.color.colorHint));

前三种都需要计算起止位置,左含右不含原理.

上一篇下一篇

猜你喜欢

热点阅读