package cn.sinata.xldutils.utils; import android.content.Context; import android.graphics.Typeface; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; /** * 字符串特定位置开始变换fontsize或者字符颜色工具。 */ public class SpanBuilder { private SpannableStringBuilder builder; //不可初始化空。 private SpanBuilder(){} private SpanBuilder(String content) { builder = new SpannableStringBuilder(content); } public static SpanBuilder content(String content) { return new SpanBuilder(content); } public SpanBuilder sizeSpan(int start, int end,int dpSize) { AbsoluteSizeSpan sizeSpan = new AbsoluteSizeSpan(dpSize,true); builder.setSpan(sizeSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return this; } public SpanBuilder colorSpan(Context context, int start, int end, int colorRes) { builder.setSpan(new ForegroundColorSpan(context.getResources().getColor(colorRes)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return this; } public SpanBuilder boldSpan(Context context, int start, int end) { builder.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return this; } public SpannableStringBuilder build() { return builder; } }