实现效果展示
废话不多说贴代码
String str = "感谢您选择使用血源派!我们做了诸多有利于保护个人信息的努力,为了更好的保障你的个人权益,在您使用在使用我们的产品前,请您认真阅读《用户协议》和《隐私政策声明》的全部内容,了解个人信息的使用情况与自主选择的权利。";
SpannableStringBuilder builder = new SpannableStringBuilder(str);
ForegroundColorSpan span = new ForegroundColorSpan(Color.parseColor("#3AD29F"));//单独设置颜色
ForegroundColorSpan span2 = new ForegroundColorSpan(Color.parseColor("#3AD29F"));
builder.setSpan(span,64, 70, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(span2,71, 79, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
AbsoluteSizeSpan sizeSpan = new AbsoluteSizeSpan(40);// 设置字体大小
builder.setSpan(sizeSpan, 0, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);// 相对于默认字体大小的倍数,这里是1.3倍
// 单独设置点击事件
ClickableSpan clickableSpanOne = new ClickableSpan() {
@Override
public void onClick(View view) {
if (!ButtonUtils.isFastDoubleClick(R.id.tv_cont_but)) {
Intent intent = new Intent(mContext, URLDetailActivity.class);
intent.putExtra("WebUrl", "https://www.vspfire.com/privacy_policy.html");
intent.putExtra("title", "隐私政策");
mContext.startActivity(intent);
}
}
@Override
public void updateDrawState(TextPaint paint) {
// paint.setColor(Color.parseColor("#3072F6"));//设置颜色
paint.setUnderlineText(false);// 设置下划线 true显示、false不显示
}
};
builder.setSpan(clickableSpanOne, 71, 79, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 单独设置点击事件
ClickableSpan clickableSpanTwo = new ClickableSpan() {
@Override
public void onClick(View view) {
if (!ButtonUtils.isFastDoubleClick(R.id.tv_cont_but)) {
Intent intent = new Intent(mContext, URLDetailActivity.class);
intent.putExtra("WebUrl", "https://www.vspfire.com/user_agreement.html");
intent.putExtra("title", "用户协议");
mContext.startActivity(intent);
}
}
@Override
public void updateDrawState(TextPaint paint) {
// paint.setColor(Color.parseColor("#3072F6"));//设置颜色
paint.setUnderlineText(false);// 设置下划线 true显示、false不显示
}
};
builder.setSpan(clickableSpanTwo, 64, 70, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_cont_but.setMovementMethod(LinkMovementMethod.getInstance());//不设置点击不生效
tv_cont_but.setText(builder);