首页 > 编程语言 >直播系统app源码,高亮变色显示文本中的关键字

直播系统app源码,高亮变色显示文本中的关键字

时间:2022-08-26 14:23:59浏览次数:55  
标签:end keyword int text app start 源码 高亮 SpannableString

直播系统app源码,高亮变色显示文本中的关键字

 

import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author : penglaoxi
 * @version : v1.0.0
 * @ClassName : KeywordUtil.java
 * @Function :
 * @Description :
 * @Idea :
 * {@link  }
 * @Encourage :Do everything you can right now, and then decide.
 * 全力以赴,历而后择。
 * @date : 2021/8/24
 */
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();
            Log.i("position","start = " + start + "end = " + 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;
    }
}

以上就是直播系统app源码,高亮变色显示文本中的关键字, 更多内容欢迎关注之后的文章

 

标签:end,keyword,int,text,app,start,源码,高亮,SpannableString
From: https://www.cnblogs.com/yunbaomengnan/p/16627421.html

相关文章

  • 直播平台搭建源码,TextView限制文字长度且超过显示省略号
    直播平台搭建源码,TextView限制文字长度且超过显示省略号一、ellipsize  <!--Wheretoellipsizetext.在哪里省略文本-->  <attrname="ellipsize">   ......
  • uniapp相关功能实现
    1.实现下拉刷新和触底刷新,其实很简单,就在pages.json的pages数组内,对需要实现效果的页面加两句代码,大概如下{"path":"pages/post/home","style":{"en......
  • mybatis-万能Mapper
    万能Mapper假设,我们的实体类,或者//万能的MapintaddUser2(Map<String,Object>map);<!--insert万能Map--><insertid="addUser2"parameterType="map">......
  • 在uniapp目录下的uni_module中创建自定义组件
    一、前言  在使用uni-app框架时,可能里面的内置组件和扩展组件都不是我们想要的,或者不能满足我们的需求,这时就必须得创建自定义组件了,在低版本的HbuilderX中所有的组......
  • Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用
    一、前言小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用哈!Mybatis-Plus我们经常使用,但是里面的很多功能,小编开始只是知道一点点,做个增删改查没问题。小编在新项目......
  • CentOS8错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlis
    CentOSLinux8在2022年12月31日来到生命周期终点(EndofLife,EoL)。即CentOSLinux8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。所以原来的CentOS......
  • appium 2.0 beta版体验
    appium创建了Appium2.0的项目看板,项目正在开发中。https://github.com/appium/appium/projects/2Appium2.0核心特性独立的驱动:能够安装和使用基于你的应用平台的解......
  • spring源码
    spring框架生态spring包含两个点IOC:控制反转原来创建对象的时候需要我们自己去new但是用spring容器帮我们创建我们需要的时候直......
  • springMVC RequestMapping
    1.可以加在类上用于模块2.可以加在方法上用于路径 packagecom.cj.mvc.controller;importorg.springframework.stereotype.Controller;importorg.springframew......
  • ubuntu系统源码安装suricata6
     下载suricata6源码,并切换到分支6.0版本:gitclonehttps://github.com/OISF/suricata.gitgitcheckout-bsuricata-6.0.0suricata-6.0.0新增协议Jir ......