改變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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章