借鉴: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>