借鉴:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0305/2535.html这篇文章
项目最初使用的是SpannableString 进行富文本显示,由于需求新增,需要用SpannableStringBuilder来改变显示的字符串。
这时候用setclickspan 和 ForegroundColorSpan会出现字体颜色不是自己设置的情况。
这种情况应该是:setclickspan会有一个链接颜色将ForegroundColorSpan设置的颜色覆盖了(虽然我先设置的setclickspan)所以换成了TextAppearanceSpan,这个span方法可以设置字体的各种颜色
//设置前景色span
spannableString.setSpan(
new TextAppearanceSpan(mEditText.getContext()
,R.style.
SpecialTextAppearance)
, matcher.start()
, end
, Spannable.
SPAN_EXCLUSIVE_EXCLUSIVE)
;
<style name="SpecialTextAppearance" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/comment_matcher
</item>
<item name="android:textColorHighlight">@color/comment_matcher
</item>
<item name="android:textColorHint">@color/comment_matcher
</item>
<item name="android:textColorLink">@color/comment_matcher
</item><!--链接颜色!!-->
</style>