前言:SpannableString的介绍
SpannableString,是CharSequence的一种,原本的CharSequence只是一串字符序列,没有任何样式,而SpannableString可以在字符序列基础上对指定的字符进行润饰,在开发中,TextView可以通过setText(CharSequence)传入SpannableString作为参数,来达到显示不同样式文字的效果。
实现代码如下,具体注释已经在代码中给出
SpannableString spannableString = new SpannableString("m2"); //四个参数说明: //第一个参数:what:对SpannableString进行润色的各种Span //第二个参数:start 需要润色文字段开始的下标 //第三个参数:end 需要润色文字段结束的下标 //第四个参数: //flags:决定开始和结束下标是否包含的标志位,有四个参数可选 //SPAN_INCLUSIVE_EXCLUSIVE:包括开始下标,但不包括结束下标 //SPAN_EXCLUSIVE_INCLUSIVE:不包括开始下标,但包括结束下标 //SPAN_INCLUSIVE_INCLUSIVE:既包括开始下标,又包括结束下标 //SPAN_EXCLUSIVE_EXCLUSIVE:不包括开始下标,也不包括结束下标 //RelativeSizeSpan缩放文本的比例 根据比例创建 spannableString.setSpan(new RelativeSizeSpan(0.5F), 1, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //将文本基线的位置移高的跨度 spannableString.setSpan(new SuperscriptSpan(), 1, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //内容和标记都可以更改的文本类 SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("10"); spannableStringBuilder.append(spannableString); tv_text.setText(spannableStringBuilder);
效果如图所示:
有不妥之处可以在评论区指出哈~