public class ColorTextView extends android.support.v7.widget.AppCompatTextView {
public ColorTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setSpecifiedTextsColor(String text, String specifiedTexts, int color) {
List<Integer> sTextsStartList = new ArrayList<Integer> ();
int sTextLength = specifiedTexts.length ();//获取特殊字符的长度
String temp = text;
int lengthFront = 0;//记录被找出后前面的字段的长度
int start = -1;
do {
start = temp.indexOf (specifiedTexts);//查找第一个字符在索引中的位置
if (start != -1) {
start = start + lengthFront;//加一个搜索的字符长度
sTextsStartList.add (start);
lengthFront = start + sTextLength;//搜索字后面的字符长度
temp = text.substring (lengthFront);//截取搜索字之后的所有字体
}
} while (start != -1);
SpannableStringBuilder styledText = new SpannableStringBuilder (text);
for (Integer i : sTextsStartList) {
styledText.setSpan (
new ForegroundColorSpan (color),
i,
i + sTextLength,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
setText (styledText);
}
}
网友评论