TextView設置指定位置處文字顏色的坑

項目需求:匹配一定的規則後給一個Textview上的文本設置不同的顏色。

int txtLength = mContentTxt.length();
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(mContentTxt);
for (int i = 0; i < mMatchIndex.size(); i++) {
    int start = mMatchIndex.get(i);
    if (start < txtLength) {
        stringBuilder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.color_72c878)), start, start + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
}
tvContent.setText(stringBuilder);

如上代碼,setSpan中傳的第一個參數必須是在此處new出來的,否則只在for循環的最後一次有效。

即每設置一次均需要一個Span對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章