一、成果展现

<font face=黑体>咱们先来看下成果:

二、代码实现

<font face=黑体>正文写的曾经很具体了,其中tvLoginPrivacyPolicy是我须要设置对应中央有点击成果的TextView,具体代码实现如下所示:

private void setTvLoginPrivacyPolicySpecialText() {    // 不须要点击的文字    tvLoginPrivacyPolicy.setText(R.string.Bylogging);    // 设置须要点击的文字    SpannableString clickString1 = new SpannableString(getString(R.string.PrivacyPolicy));    // 设置须要点击文字的款式    clickString1.setSpan(new ClickableSpan() {        @Override        public void onClick(View widget) {            // 点击之后须要做的操作            forwardPrivacyPolicy();        }        @Override        public void updateDrawState(TextPaint ds) {            super.updateDrawState(ds);            // 设置可点击文字的色彩            ds.setColor(getResources().getColor(R.color.clickText));        }        // 0-->clickString1.length()这个长度就是须要点击的文字长度    }, 0, clickString1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    // 将须要点击的文字增加到咱们的TextView中    tvLoginPrivacyPolicy.append(clickString1);    // 持续增加不须要点击的文字组装TextView    tvLoginPrivacyPolicy.append(new SpannableString(" " + getString(R.string.And)) + " ");    // 增加须要点击的文字    SpannableString clickString2 = new SpannableString(getString(R.string.TermsAndConditions));    // 设置须要点击文字的款式    clickString2.setSpan(new ClickableSpan() {        @Override        public void onClick(View widget) {            forwardPrivacyPolicy();        }        @Override        public void updateDrawState(TextPaint ds) {            super.updateDrawState(ds);            //设置色彩            ds.setColor(getResources().getColor(R.color.clickText));        }        // 0-->clickString2.length()这个长度就是须要点击的文字长度    }, 0, clickString2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    tvLoginPrivacyPolicy.append(clickString2);    // 设置点击文字点击成果为通明    tvLoginPrivacyPolicy.setHighlightColor(Color.TRANSPARENT);    // 开始响应点击事件    tvLoginPrivacyPolicy.setMovementMethod(LinkMovementMethod.getInstance());}