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;

    }

    }

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

  • 相关阅读:
    记录一次腾讯云服务器进挖矿病毒的事故
    Django组件:django-simple-captcha 使用
    RabbitMQ延迟队列(Python版)
    RabbitMQ CLI 管理工具 rabbitmqadmin(管理)
    Django Rest Framework组件:用户访问次数/频率限制BaseThrottle
    GitLab 持续集成
    Windows10搭建Spark+Python开发环境
    Python 应用自动化部署工具Fabirc
    Prometheus:Prometheus开发中间件Exporter
    qs 和 headers: { "content-type": "application/x-www-form-urlencoded" }, data: qs.stringify(data) 必须同时设置
  • 原文地址:https://www.cnblogs.com/android-blogs/p/4972001.html
Copyright © 2011-2022 走看看