一、效果展示
<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());
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。