加粗
Html.fromHtml("<b>实阿斯达斯材:</b>烧杯打扫打扫打扫打扫体。<br><br><b>确阿斯顿撒大事整的吗?</b>")
private void testText1(String posName) {
String text = "* 为你发布的 " + posName + " 添加一句宣传语吧!";
SpannableString span = new SpannableString(text);
span.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new ForegroundColorSpan(Color.CYAN), 7, 7 + posName.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new ForegroundColorSpan(Color.BLACK), text.length() - 5, text.length() - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new StyleSpan(Typeface.BOLD), text.length() - 5, text.length() - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv1.setText(span);
/**
* 其中最后的参数flag:
* Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点 (a,b)
* Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端点 (a,b]
* Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含两端start,但不包含end所在的端点 [a,b)
* Spanned.SPAN_INCLUSIVE_INCLUSIVE --- 包含两端start和end所在的端点 [a,b]
*/
}
//方法一:
TextView tvValue = findViewById(R.id.tv_value);
String str="默认颜色<font color='#FF0000'><small>红颜色
</small></font>";
tvValue.setTextSize(18);
tvValue.setText(Html.fromHtml(str));
部分文字的点击事件
TextView tv1 = view.findViewById(R.id.tv1);
String content = " 欢迎来到SumanSoul为了更好地向用户提供服务,未经用户同意,SumanSoul不会自动收集、获取、共享或对外提供用户个人信息;你可以随时查看、更正或删除你的个人信息,SumanSoul也提供用户注销功能。";
tv_content.setText(content.replace(" ", ""));
SpannableStringBuilder spannableString = new SpannableStringBuilder("点击查看完整「用户协议」和「隐私政策」");
spannableString.setSpan(new TextAgreementClick(), 6, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new TextPrivacyClick(), 13, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
//设置点击事件,加上这句话才有效果
tv1.setMovementMethod(LinkMovementMethod.getInstance());
//设置点击后的颜色为透明(有默认背景)
tv1.setHighlightColor(BaseApplication.getInstance().getResources().getColor(R.color.transparent));
tv1.setText(spannableString);
<!-- 透明背景色-->
<color name="transparent" tools:ignore="MissingDefaultResource">#00000000</color>
private class TextAgreementClick extends ClickableSpan{
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
//设置文本的颜色
ds.setColor(Color.RED);
//超链接形式的下划线,false 表示不显示下划线,true表示显示下划线
ds.setUnderlineText(false);
}
@Override
public void onClick(View widget) {
// 执行点击逻辑
}
}