Textview分段点击,改变颜色

2020-04-07  本文已影响0人  wenju
    final SpannableStringBuilder style = new SpannableStringBuilder();
    //设置文字
    style.append(getString(R.string.privacy_agreement_dialog_context));
    //设置部分文字点击事件
    ClickableSpan clickableSpan1 = new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            //服务协议
            UserAgreementActivity.start(LoginActivity.this, 0);
        }

        @Override
        public void updateDrawState(@NonNull TextPaint ds) {
            ds.setColor(getResources().getColor(R.color.color_theme));
            ds.setUnderlineText(false);
        }
    };
    ClickableSpan clickableSpan2 = new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            UserAgreementActivity.start(LoginActivity.this, 1);
        }

        @Override
        public void updateDrawState(@NonNull TextPaint ds) {
            //设置文字颜色
            ds.setColor(getResources().getColor(R.color.color_theme));
            //去除下划线
            ds.setUnderlineText(false);
        }
    };
    //添加点击效果
    style.setSpan(clickableSpan1, 31, 37, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    style.setSpan(clickableSpan2, 38, 44, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    //点击需要
    wTvContext.setMovementMethod(LinkMovementMethod.getInstance());
    //去除点击高亮
    wTvContext.setHighlightColor(getResources().getColor(android.R.color.transparent));
    wTvContext.setText(style);
上一篇下一篇

猜你喜欢

热点阅读