您的位置:首页 > 其它

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

2016-12-06 09:19 567 查看
开发中经常会遇到同一个TextView需要显示不同颜色,不同字体大小的文字。

通过SpannableStringBuilder可以很容易的实现这两个功能。

以下是一个自定义的SpannableUtils

public class SpannableUtils {
static SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

public static SpannableStringBuilder showDiffColor(String str, int start,int end) {
if (spannableStringBuilder.length() > 0) {
spannableStringBuilder.clear();
}
spannableStringBuilder.append(str);
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#427fed")), start,
end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

return spannableStringBuilder;
}

public static SpannableStringBuilder showDiffSize(String str, int start, int end, int size) {
if (spannableStringBuilder.length() > 0) {
spannableStringBuilder.clear();
}
spannableStringBuilder.append(str);
spannableStringBuilder.setSpan(new AbsoluteSizeSpan(size), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

return spannableStringBuilder;
}
}



使用如下

tv1.setText(SpannableUtils.showDiffColor("测试不同颜色",1,3));
//由于AbsoluteSizeSpan的size是像素,因为在使用时,需要将sp转为px
tv2.setText(SpannableUtils.showDiffSize("测试不同size", 1, 3, DeviceUtils.dip2px(this, 25)));
tv3.setText("正常显示");

效果图如下

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: