zoukankan      html  css  js  c++  java
  • Android中高亮变色显示文本中的关键字

    应该是好久没有写有关技术类的文章了,前天还有人在群里问我,说群主很长时间没有分享干货了,今天分享一篇Android中TextView在大段的文字内容中如何让关键字高亮变色的文章 ,希望对大家有所帮助,我终于在歪路上回归正途了。这个篇文章在平时应该还算比较常用吧,如果你会了,就不用看了,如果还不会,可以看一眼,非常简单。

    今天分享的文章大概内容是在TextView中如何使大段的文字内容中关键字变色高亮显示的,分为一个关键字高亮变色显示和多个关键字一起高亮变色显示。我已经封装成了KeywordUtil工具类,可以直接调用,效果图如下:

    Android中高亮变色显示文本中的关键字

    具体代码如下:

    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;

    }

    }

    其实看完代码就知道了,非常简单。大家可以试一试哦!

  • 相关阅读:
    推荐系统和业务系统对比:
    认识事物的过程是:
    思考:面向对象源码的解析和阅读需要注意和把握的点
    推荐系统中ES使用过程中遇到的问题:
    使用缓存功能要掌握住(心里有数)的点:
    思考:延迟决策是非常重要的
    压力测试中tps上不去的原因
    mysql 高级查询二
    mysql 高级查询
    fiddler设置https抓包
  • 原文地址:https://www.cnblogs.com/android-blogs/p/4972001.html
Copyright © 2011-2022 走看看