android TextView 首行缩进与部分文字改变颜色大小效果

本文首发在我的个人博客: http://www.geekqian.com/post/21138b6f.html

转载请注明出处

  1. TextView 首行伪缩进效果

    // 原理, 使用Spannable 把前两个字设置为透明状态. 虽然是伪缩进, 但是不会因为分辨率的不同而产生各种问题, 注意如果
    // TextView设置了可复制的话要再做处理, 否则会把透明的文字也复制了.
    
    Spannable span = new SpannableString("缩进" + customerInfo.getDescription());
    
    span.setSpan(new ForegroundColorSpan(Color.TRANSPARENT), 0, 2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    
    mBusiness_scope.setText(span);
    
  2. TextView 部分文字改变颜色大小效果

    String msg = "一行中包含了特殊文字";
    Spannable span = new SpannableString(msg);
    String special = "特殊文字";
    int start = msg.indexOf(special);
    int end = start + special.length();
    // 改变大小 (16为文字大小)
    span.setSpan(new AbsoluteSizeSpan(dip2px(16)), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    // 改变颜色 (Color.YELLOW 为文字颜色)
    span.setSpan(new ForegroundColorSpan(Color.YELLOW), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    TextView.setText(span);
    
    /**
     * dip----to---px
     * @return
     */
    public static int dip2px(int dip) {
        // 缩放比例(密度)
        float density = getResources().getDisplayMetrics().density;
        return (int) (dip * density + 0.5);
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值