第一种情况:从哪儿到哪儿固定的换文字颜色
//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);
第三种情况:直接指定某段文字颜色:
//设置文字颜色
holder.tvGoodsNumber.setTextColor(ContextCompat.getColor(mContext,R.color.colorHint));
holder.TVSupplier.setTextColor(ContextCompat.getColor(mContext,R.color.colorHint));
前两种都需要计算起止位置,左含右不含原理.