• 【有人@我】Android中高亮变色显示文本中的关键字


    应该是好久没有写有关技术类的文章了,前天还有人在群里问我,说群主很长时间没有分享干货了,今天分享一篇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 ,公众号[非著名程序员]可能是东半球最好的技术分享公众号。每天,每周定时推送一些有关移动开发的原创文章和教程。

  • 相关阅读:
    三个录屏软件
    不用 PS 和 AI,5个网站能做出更好看的设计
    使用vue.js开发小程序
    js异步处理
    HTTP、HTTP1.0、HTTP1.1、HTTP2.0、HTTPS
    Chrome不支持css字体小于12px的解决办法
    处理CSS前缀问题的神器——AutoPrefixer
    CSS | 字体系列
    qemu-img 命令讲解
    全面理解 git
  • 原文地址:https://www.cnblogs.com/loonggg/p/4981777.html
Copyright © 2020-2023  润新知