Android SpannableString处理TextVie

作者: 甜牛奶苦咖啡 | 来源:发表于2017-01-06 10:29 被阅读129次

    需求:一行文字中需要某些文字有不同的样式

    数字特殊样式 百分数的整数部分和小数部分样式不同

    实现:

    数字特殊样式

    Spannable builder =new SpannableString("需要调整的textView内容");

    ForegroundColorSpan span =new ForegroundColorSpan(getResources().getColor(R.color

    .similar_pic_num_color));//修改文字颜色

    builder.setSpan(span,4,6,Spanned.SPAN_INCLUSIVE_INCLUSIVE);

    similarPicNumber.setText(builder);

    百分数的整数部分和小数部分样式不同

    Spannable spannable =new SpannableString(viewHolder.similar.getText().toString());

    spannable.setSpan(new AbsoluteSizeSpan(16, true),0,2,Spannable.SPAN_INCLUSIVE_INCLUSIVE);//修改文字大小

    spannable.setSpan(new AbsoluteSizeSpan(12, true),2,4,Spannable.SPAN_INCLUSIVE_INCLUSIVE);

    spannable.setSpan(new AbsoluteSizeSpan(10, true),4,5,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

    viewHolder.similar.setText(spannable);

    主要关键是这个函数的使用

    public void setSpan(Object what,int start,int end,int flags) {

    super.setSpan(what, start, end, flags);

    }

    what:对应各种span

    start:开始应用指定Span的位置,索引从0开始

    end:结束应用指定Span的位置,特效并不包括这个位置。

    flags的取值有如下四个

    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前后都不包括

    Spannable.SPAN_EXCLUSIVE_INCLUSIVE:不包括前,包括后

    Spannable.SPAN_INCLUSIVE_INCLUSIVE:前后都包括

    Spannable.SPAN_INCLUSIVE_EXCLUSIVE:包括前,不包括后

    相关文章

      网友评论

        本文标题:Android SpannableString处理TextVie

        本文链接:https://www.haomeiwen.com/subject/znutbttx.html