Android中Spannable的基础常用使用

1.一段文字不同字体大小的设置:

SpannableString spannableString =new SpannableString(str);
spannableString.setSpan(new AbsoluteSizeSpan(sp2px(14)), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
tv.setText(spannableString);

2.一段文字不同字体颜色的设置:

ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(context.getResources().getColor(R.color.red1));
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.GREEN);
spannableString.setSpan(foregroundColorSpan,0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

3.一段文字的点击

spannableString.setSpan(object : ClickableSpan() {
            override fun onClick(p0: View) {
                Utils.callPhone(context,number)
            }
            override fun updateDrawState(ds: TextPaint) {
                //去掉下划线
                ds.isUnderlineText=false
            }
        },4, str.length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
//要加这个,不然点击无反应
        tv_help.movementMethod = LinkMovementMethod.getInstance()

/**
     * 拨打电话(跳转到拨号界面,用户手动点击拨打)
     * 此种方式无需申请权限
     * @param phoneNum 电话号码
     */
    public static void callPhone(Context context,String phoneNum) {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        Uri data = Uri.parse("tel:" + phoneNum);
        intent.setData(data);
        context.startActivity(intent);
    }

你可能感兴趣的:(Android中Spannable的基础常用使用)