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

开发中经常会遇到同一个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("正常显示");

效果图如下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值