怎样实现一个TextView中多种字体颜色和字体大小(SpannableString)

怎样实现一个TextView中多种字体颜色和字体大小(SpannableString)_第1张图片

    怎样实现如上图所示的效果呢?相信很多写android app的人都遇到过这种情况,例如显示进度的时候,以前不知道还有SpannableString这个东西,实现这个效果只会傻傻地在那摆上三个紧挨着的TextView。没想到这事挺容易的。示例代码如下:

SpannableString spannableString =  new SpannableString("beijing/xiongan");
        AbsoluteSizeSpan span1 = new AbsoluteSizeSpan(88);
        AbsoluteSizeSpan span2 = new AbsoluteSizeSpan(128);
        spannableString.setSpan(new ForegroundColorSpan(Color.BLUE),0,7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(span1,0,7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.RED),7,8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.GREEN),8,15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(span2,8,15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        //直接用spannableString,不要spannableString.toString( ),否则会失效
        tv.setText(spannableString);


你可能感兴趣的:(Android)