在项目中,如果想要达到下面的这种效果,一般都是设置一个TextView,将里面的字体设置不同大小。
PS: 如果想要将上图中的文字变成居中对齐就麻烦了,貌似需要自定义span
TextView test = (TextView) findViewById(R.id.tv3);
SpannableStringBuilder spannable = new SpannableStringBuilder(test.getText().toString());
//设置字体颜色为红色
ForegroundColorSpan good_red = new ForegroundColorSpan(getResources().getColor(R.color.goods_red));
//设置字体颜色为灰色
ForegroundColorSpan good_gray = new ForegroundColorSpan(getResources().getColor(R.color.col909090));
//改变第0-3个字体颜色
spannable.setSpan(good_red, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//改变第4-之后所有的字体颜色(这里一定要注意范围,否则会造成越界)
spannable.setSpan(good_gray, 4, test.length() - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//改变第0个字体大小
spannable.setSpan(new AbsoluteSizeSpan(40), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//改变第1-第3个字体大小
spannable.setSpan(new AbsoluteSizeSpan(70), 1, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//改变第4-所有字体大小
spannable.setSpan(new AbsoluteSizeSpan(40), 4, test.length() - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
test.setText(spannable);
上面设置的flag的区别: