将一段文字中的几个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. shell命令输入输出重定向

    Linux命令的执行过程 首先是输入:stdin输入可以从键盘,也可以从文件得到 命令执行完成:把成功结果输出到屏幕,stout默认是屏幕 命令执行有错误:把错误也输出到屏幕上面,stderr默认也是 ...

  2. CentOS7配置更新国内yum源

    备份本地yum源文件 cd /etc/yum.repo.d/ mv CentOS-Base.repo CentOS-Base.repo.bakeup 下载国内yum源 阿里云yum源 wget htt ...

  3. Java IO编程全解(五)——AIO编程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7794151.html 前面讲到:Java IO编程全解(四)--NIO编程 NIO2.0引入了新的异步通道的 ...

  4. 【机器学习实战】第14章 利用SVD简化数据

    第14章 利用SVD简化数据 SVD 概述 奇异值分解(SVD, Singular Value Decomposition): 提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征.从生 ...

  5. css-子div设置margin-top影响父div

    父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己父元素,祖先元素,所有需要在父元素设置border,或者padding

  6. js 根据身份证号获取性别,年龄,等

    $(function(){        $("#corpOwnerIdno").blur(function(){          //获取输入身份证号码             ...

  7. CentOS卸载原有旧版OPENJDK并安装SUNJDK解决方案

    PS:由于图片是安装后进行截图所以出现的是1.8版本,步骤是完全正确的. 一.检测JDK 首先你要打开终端,为避免可能出现的权限问题建议直接su进入root.(PS:密码可以输入但不显示) 然后输入j ...

  8. oracle数据库管理系统常见的错误(一)

    oracle数据库管理系统常见的错误之一如下: Listener refused the connection with the following error:ORA-12519, TNS:no a ...

  9. 对比MFC和Winform及WPF

    MFC 生成本机代码,自然是很快.可是,消息循环,减缓了界面显示速度.winform 封装了 win32 的api,多次进行P/invoke 操作 (大部分使用p/invoke操作封装),速度慢 .w ...

  10. 【机器学习】人工神经网络ANN

    神经网络是从生物领域自然的鬼斧神工中学习智慧的一种应用.人工神经网络(ANN)的发展经历的了几次高潮低谷,如今,随着数据爆发.硬件计算能力暴增.深度学习算法的优化,我们迎来了又一次的ANN雄起时代,以 ...