1. 程式人生 > >改變TextView特定字元顏色及背景可正則匹配

改變TextView特定字元顏色及背景可正則匹配

安卓TextView的文字,要想改變部分文字顏色,其實是很簡單的事情,只需要正確匹配出要修改的String文字的下標,並建立SpannableStringBuilder物件,設定屬性即可。至於使用一些富文字的工具類,算是大材小用了。

下面自己編寫的一個簡單的方法,呼叫傳參即可。

/**
     * @author xiaoming 2015年8月17日
     * @describe    設定富文字,改變textView部分文字顏色
     * @param tv textView控制元件
     * @param str 原文字
     * @param regExp 正則表示式
     * @returnType
void */
public static void richText(TextView tv, String str, String regExp) { SpannableStringBuilder style = new SpannableStringBuilder(str); Pattern p = Pattern.compile(regExp, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(str); while (m.find()) { int
start = m.start(0); int end = m.end(0); style.setSpan(new BackgroundColorSpan(Color.BLACK), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //指定位置文字的背景顏色 style.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //指定位置文字的字型顏色 } tv.setText(style); }