應該是好久沒有寫有關技術類的文章了,前天還有人在群里問我,說群主很長時間沒有分享干貨了,今天分享一篇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; } }
其實看完代碼就知道了,非常簡單。大家可以試一試哦!獲取demo的方法跟以前一樣,只需在公眾號里回復關鍵字“5”即可獲得。
【特別推薦↓】
微信公眾號:smart_android ,公眾號[非著名程序員]可能是東半球最好的技術分享公眾號。每天,每周定時推送一些有關移動開發的原創文章和教程。
「非著名程序員」本人建立了一個高端Android微信交流群,如果有想加入的請先加我個人微信號:loonggg ,具體加入條件非常簡單,加我個人微信號時,請備注為:加群,到時會告訴你具體的加入流程,感謝🙏每位開發者的配合。
