import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 點(diǎn)亮文字工具類
* 如:點(diǎn)亮單個關(guān)鍵字,點(diǎn)亮多個不同關(guān)鍵字
*
*/
public class LightTextUtils {
/**
* 關(guān)鍵字高亮變色
*
* @param color 變化的色值
* @param text 文字
* @param keyword 文字中的關(guān)鍵字
* @return 變色后的字符串
*/
public static SpannableString matcherSearchTitle(int color, String text,
String keyword) {
SpannableString s = new SpannableString(text);
Pattern p = Pattern.compile(keyword);
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(color), start, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return s;
}
/**
* 多個關(guān)鍵字高亮變色
*
* @param color 變化的色值
* @param text 文字
* @param keyword 文字中的關(guān)鍵字?jǐn)?shù)組
* @return 變色后的字符串
*/
public static SpannableString matcherSearchTitle(int color, String text,
String[] keyword) {
SpannableString s = new SpannableString(text);
for (int i = 0; i < keyword.length; i++) {
Pattern p = Pattern.compile(keyword[i]);
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(color), start, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
return s;
}
}
[Android][工具類]LightTextUtils
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- [TOC] 前言 Android SDK原生 API中,有一些常用的工具類,運(yùn)用得當(dāng)可以省事省力省時,何況還是An...
- 隱藏軟鍵盤 顯示軟鍵盤 一行代碼實(shí)現(xiàn)Android軟鍵盤與EditText的交互 http://mp.weixin...
- 前言 相信大部分仁兄在使用系統(tǒng)Toast的時候,都感覺不太盡如人意,因?yàn)橄到y(tǒng)Toast顯示的位置比較固定,并且字體...