同一个TextView不同颜色,不同大小的设置

在项目中,如果想要达到下面的这种效果,一般都是设置一个TextView,将里面的字体设置不同大小。


同一个TextView不同颜色,不同大小的设置_第1张图片
image.png

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的区别:


同一个TextView不同颜色,不同大小的设置_第2张图片
image.png

你可能感兴趣的:(同一个TextView不同颜色,不同大小的设置)