总有些细节设计总监总是揪着不放,做的app中有个textview牵扯到了url链接,但是老大的意思是不能存在下划线:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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即可。