将一段文字中的几个keyword显示高亮

演示样例:将“我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色”中的”皮肤“显示绿色。

<span style="font-size:18px;">public class MainActivity extends Activity {
private static TextView mTextView;
//须要显示的文字
private static String keywords="皮(.*)肤"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView=(TextView)findViewById(R.id.tv_moder);
//调用TextUtilTools类的highlight方法
SpannableStringBuilder textString = TextUtilTools.highlight(
mTextView.getText().toString(), keywords);
//改动文本显示内容
mTextView.setText(textString);
} public static class TextUtilTools {
/**
* @param text 要显示的内容
*
* @param target 要高亮显示的内容
* @param SpannableStringBuilder 相似于String,比String多了能够给文字加入样式(颜色,下划线···)
**/
public static SpannableStringBuilder highlight(String text,
String target) {
SpannableStringBuilder spannable = new SpannableStringBuilder(text);
//字体样式
CharacterStyle span = null;
//将keywords作为一个模板
Pattern pattern=Pattern.compile(keywords);
//匹配器
Matcher matcher =pattern.matcher(mTextView.getText()); while (matcher.find()) {
span = new ForegroundColorSpan(Color.GREEN);// 须要反复。
//设置spannable中的关键字
spannable.setSpan(span, matcher.start(), matcher.end(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
// spannable.setSpan(new ClickableSpan() {
// @Override
// public void onClick(View arg0) {
// MethodsExtra.startActivity(mContext,HouseManageActivity.class);}
// }, 0, 0, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannable;
}
} }
</span>


<span style="font-size:24px;color:#ff0000;">将textView中的几个字显示高亮,最简单的方法:</span>
<span style="font-size:14px;color:#333333;"></span><pre class="java" name="code">tvHuan.setText(Html.fromHtml("看不清<font color=#ff0000>换一张</font>"))。
<span style="font-size:24px;color:rgb(255,0,0);">
</span>


啦啦~啦~~啦~~~,今天刚学会的。晒给大家!

。!

一段文字中的几个keyword显示高亮的更多相关文章

  1. js或者jq判断一段文字中是否有自己想要的那几个字,如果有就把那几个字变成红色

    如何判断一段文字中是否有自己想要的那几个字,如果有就把那几个字变成红色(在html中)比如有body中有这么一串文字“驾驶的后视镜的华盛顿”,想要判断里面是否有“驾驶”这两个字,如果有就把这两个字变成 ...

  2. C++统计一段文字中各单词出现的频率

    #include <iostream> using namespace std; /* run this program using the console pauser or add y ...

  3. 统计一段文字中出现频率最高的10个单词(c语言)

    注:这次使用C语言做的这个程序.个别不懂的地方和算法部分是请教的其他同学,交流并吸收,所以收获颇多! 在程序中每一个地方我都做了注释,方便同学之间交流.也让老师容易看.程序也有很多不足的地方,但限于本 ...

  4. JS 实现计算一段文字中的字节数,字母数,数字数,行数,汉字数。

    看到了匹配,第一个想到了用正则表达式,哈哈,果然很方便.不过正则表达式高深莫测!我还没有研究明白啊..目前学了点皮毛.代码如下: <!DOCTYPE html PUBLIC "-//W ...

  5. 从一段文字中提取出uri信息

    package handle.groupby; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  6. unity插件,从一段文字中提取中文并去重

    using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEditor; using Uni ...

  7. SpannableString 设置一段文字中部分字体颜色

    SpannableString strTitle = new SpannableString("病情描述(必填项,请至少填写20个字)"); strTitle.setSpan(ne ...

  8. java 实现一段文字中,出现次数最多的字

    代码如下: public static void main(String[] args) { String str = "大批量,之前都没怎么注意过,这个问题确实不会,网上参考了下别人的,大 ...

  9. 在Excel表格中输入一大段文字

    1.有时为了注释的需要,在excel中需要输入一大段文字,这时候可以使用—视图-工具-绘图,然后选择下面的文本框,即可自定义文本框大小,如需要文本框和表格边框完全重合,在鼠标画文本框时按住 Alt键.

随机推荐

  1. chrome Web开放 字体格式不能显示问题

    /** * Chrome 32/33 webfont issue fix. * Requires jQuery. * More info: http://blog.cloudfour.com/chro ...

  2. SQL基本查询_多表查询(实验三)

    SQL基本查询_多表查询(实验三) 题目要求(一) 针对emp.dept两表完成如下查询,并验证查询结果的正确性 使用显式内连接查询所有员工的信息,显示其编号.姓名.薪水.入职日期及部门名称: 使用隐 ...

  3. Problem E: 可变长数组

    Problem E: 可变长数组 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 472  Solved: 368[Submit][Status][Web ...

  4. 用python做小说网站

    html头部 {% extends 'base.html' %} {% load static %} {% block title %}小说首页{% endblock %} {% block cont ...

  5. ServerSocket(TCP/IP协议)__Java

    服务器端  //参数为端口号,可以自定义 ServerSocket ss=new ServerSocket(11111); System.out.println("开启监听..." ...

  6. mac 安装protobuf,并编译

    因公司接口协议是PB文件,需要将 PB 编译成JAVA文件,且MAC 电脑,故整理并分享MAC安装 google 下的protobuf 文件   MAC 安装protobuf 流程 1.下载 http ...

  7. vmware fusion 10/pro 10序列号

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } sp ...

  8. Python Base64 编码

    0x00 Base64简介 0x01 常用场景举例 0x02 编.解码流程 0x03 Python中Base64编码与解码 0x00 Base64简介 我们知道在计算机中任何数据都是按ascii码存储 ...

  9. ligerUI---下拉菜单(menubar)动态显示(从后台获取数据)

    写在前面: ligerui的下拉菜单是有点丑的,这也是没有办法的事........这里主要记录下,如何从后台获取数据进行菜单显示. 有两种方式:1.使用json数组来动态添加  2.字符串拼接.  其 ...

  10. webpack 3.X学习之JS压缩与打包HTML文件

    js压缩 webpack自带一个插件uglifyjs-webpack-plugin来压缩js,所以不需要再次安装,当一切都准备妥当,引入uglifyjs-webpack-plugin模块: const ...