Android中高亮變色顯示文本中的關鍵字
來自: http://www.jcodecraeer.com//a/anzhuokaifa/androidkaifa/2016/0224/3990.html
應該是好久沒有寫有關技術類的文章了,前天還有人在群里問我,說群主很長時間沒有分享干貨了,今天分享一篇Android中TextView在大段的文字內容中如何讓關鍵字高亮變色的文章 ,希望對大家有所幫助,我終于在歪路上回歸正途了。這個篇文章在平時應該還算比較常用吧,如果你會了,就不用看了,如果還不會,可以看一眼,非常簡單。
今天分享的文章大概內容是在TextView中如何使大段的文字內容中關鍵字變色高亮顯示的,分為一個關鍵字高亮變色顯示和多個關鍵字一起高亮變色顯示。我已經封裝成了KeywordUtil工具類,可以直接調用,效果圖如下:

具體代碼如下:
package net.loonggg.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
public class KeywordUtil {
/**
* 關鍵字高亮變色
*
* @param color
* 變化的色值
* @param text
* 文字
* @param keyword
* 文字中的關鍵字
* @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;
}
/**
* 多個關鍵字高亮變色
*
* @param color
* 變化的色值
* @param text
* 文字
* @param keyword
* 文字中的關鍵字數組
* @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;
}
} 其實看完代碼就知道了,非常簡單。大家可以試一試哦!
移動開發者的聚集地,公眾號“非著名程序員”,每天一篇原創技術分享和移動互聯網知識分享,微信公眾號:smart_android
本文由用戶 842614503 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!