TextView内容设置显示不同的字体颜色和不同的字体大小

时间:2020-11-24 17:28:32
/**
* 设置同一个TextView中显示不同的字体颜色和不同的字体大小
* @param context
* @param prescriptionName
* @param totalMedicines
* @return 返回值用于textView.setText(SpannableStringBuilder style)即可显示;
*/
private SpannableStringBuilder handleStyle(Context context, String prescriptionName, String totalMedicines) {
SpannableStringBuilder style = new SpannableStringBuilder(prescriptionName + totalMedicines);
//设置不同的字体颜色,可调用多次
style.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.title_color)), 0, prescriptionName.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.hint_text_color)), prescriptionName.length(), (prescriptionName + totalMedicines).length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
//设置不同的字体大小,可调用多次
style.setSpan(new AbsoluteSizeSpan(Utils.dip2px(context, 16)), 0, prescriptionName.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
style.setSpan(new AbsoluteSizeSpan(Utils.dip2px(context, 14)), prescriptionName.length(), (prescriptionName + totalMedicines).length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
return style;
}