android 富文本SpannableString去掉下划线

作者: android 发布时间: 2022-10-11 浏览: 1409 次 编辑

总有些细节设计总监总是揪着不放,做的app中有个textview牵扯到了url链接,但是老大的意思是不能存在下划线:

代码如下:

        String msg = "*注册即代表同意《用户协议》";
        SpannableString smp = new SpannableString(msg);
 
        ClickableSpan clickableSpan = new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                startActivity(new Intent(UserRegisterActivity.this, UserProtocolActivity.class));
            }
 
            @Override
            public void updateDrawState(TextPaint ds) {
                ds.setUnderlineText(false);
//                super.updateDrawState(ds);
            }
        } ;
 
        //设置点击
        smp.setSpan(clickableSpan, msg.indexOf("《") + 1, msg.lastIndexOf("》"), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //设置前景色
        smp.setSpan(new ForegroundColorSpan(Color.parseColor("#0AC3BC")), msg.indexOf("《"), msg.lastIndexOf("》") + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //设置tv
        tv_introduce.setText(smp);
        tv_introduce.setMovementMethod(LinkMovementMethod.getInstance());

主要是重写

updateDrawState(TextPaint tp)

方法,将setUnderLineText()设置为false即可。