文档章节

Android中TextView的某一关键字高亮显示

aaddssa
 aaddssa
发布于 2015/06/11 15:09
字数 217
阅读 2763
收藏 2
点赞 1
评论 1

刚好碰到一个要在ListView的Item中显示搜索的关键字高亮显示。已经解决,现在讲代码贴出来。

调用的时候传入2个参数即可,1.要显示的文本。2.需要高亮的关键字。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan;

public class TextUtilTools {

	/**
	 * 关键字高亮显示
	 * 
	 * @param target  需要高亮的关键字
	 * @param text	     需要显示的文字
	 * @return spannable 处理完后的结果,记得不要toString(),否则没有效果
	 */
	public static SpannableStringBuilder highlight(String text, String target) {
		SpannableStringBuilder spannable = new SpannableStringBuilder(text);
		CharacterStyle span = null;

		Pattern p = Pattern.compile(target);
		Matcher m = p.matcher(text);
		while (m.find()) {
			span = new ForegroundColorSpan(Color.RED);// 需要重复!
			spannable.setSpan(span, m.start(), m.end(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
		return spannable;
	}
	
	// 调用
	// SpannableStringBuilder textString = TextUtilTools.highlight(item.getItemName(), KnowledgeActivity.searchKey);
	// vHolder.tv_itemName_search.setText(textString);
}



© 著作权归作者所有

共有 人打赏支持
aaddssa
粉丝 0
博文 5
码字总数 651
作品 0
武汉
程序员
加载中

评论(1)

高山流水2080
高山流水2080
Android入门学习_Android创建新项目及开发

创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了。 首先, 看一下要创建"Hello, World"程序从高级层面上有哪些步骤: 1, 通过 ...

cathleencheng
2011/06/03
0
2
Android 动态图文混排的常用方法

DrawableIcon的设置 对于TextView或者EditText动态设置drawableLeft,drawableRight,drawableTop,drawableBottom,drawableStart,drawableEnd的方法总结 Android中提供了许多动态设置的方...

IamOkay
2015/02/07
0
1
TextView 组件本身可以显示URL,EMAIL等特殊信息,这些特殊信息都会以连接形式显示...

public class AndrodTActivity extends Activity implements OnClickListener { TextView tv_; TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate......

带梦想一7飞
2013/04/11
0
1
玩转Android 之 TextView常用特效

暑期大学生博客分享大赛 - 2011 Android 成长篇 本文参加第二届Google大学生暑期博客分享大赛 TextView是最常用的Android控件之一,显示文字时的首选,然而很多人都不满足于,TextView默认的...

cokey
2011/08/06
0
3
Android性能优化案例研究(下)

译者前言:在Android性能优化案例研究(上)中,作者Romain Guy将Falcon Pro这款应用作为例子,通过Android现有的工具追踪和分析了其隐藏的性能问题(重绘)。下篇作者将会带来如何解决此类问...

Jerikc
2013/05/11
0
0
Android学习之Textview的一些属性解释

delia 动态改变控件的方法 1.声明控件参数获取的对象 LinearLayout.LayoutParams linear = (LayoutParams) view.getLayoutParams(); 2.设置控件参数,如宽度: linear.width = 10; 3.使得设...

程序袁_绪龙
2014/09/25
0
0
#翻译# Android Performance Case Study by Romain...

片头声明: 1、本片是据Romain Guy剧本编写Android Performance Case Study衍生的电影,某些部分可能由于个人英语水平有限及理解原因,可能有别于原作者的原意。如有发现,请指正。以利于我们...

Drealin
2013/05/10
0
10
TextView的日常使用技巧

Textview在日常开发工作中使用非常频繁,在这里简单总结一下其比较重要的用法。目标是设置textview的中一段文字的显示属性,例如指定文字要下划线显示(@XXX、#XXX#),文字替换成图片,文字...

zhiweiofli
2013/07/05
0
0
Android中TextView如何实现水平和垂直滚动

一、只想让TextView显示一行,但是文字超过TextView的长度怎么办? 在开头显示省略号 [html] android:singleLine="true" android:ellipsize="start" 在结尾显示省略号 [html] android:singl...

mutouzhang
2014/03/15
0
0
android中TextView中如何设置水平滚动效果

笔者在学习android的过程中曾遇到过一个比较头疼的问题——如何让文本实现走马灯的效果,在起初我和大家一样想在网上找到一点资料,可是当我在茫茫网际中搜寻了几个小时之后发现的结果却是非...

Fiter
2011/02/11
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mybatis中session.getMapper方法源码分析

0开始代码AuthorMapper mapper = session.getMapper(AuthorMapper.class); 1 DefaultSqlSession类 @Override public <T> T getMapper(Class<T> type) { //最后会去调用MapperRegistry.getMap......

writeademo
9分钟前
0
0
spring cloud zuul网关的作用

zuul一般有两大作用,1是类似于Nginx的网址重定向,但zuul的重定向的一般是整个spring cloud里在Eureka注册中心的模块. zuul: ignored-services: '*' sensitiveHeaders: routes: ...

算法之名
10分钟前
4
0
java按比例之原图生成缩略图

package com.wxp.test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import sun.......

恋码之子
19分钟前
0
0
SpringCloud 微服务 (十五) 服务容错 Hystrix

壹 工作中的微服务架构,某个服务通常会被多个服务调用或者多层调用完成需求,如果某个服务不可用,导致一个系统功能不可用或者服务直接没用了的情况,这种情况称为雪崩效应 有A服务调用B服务,B服...

___大侠
22分钟前
0
0
Spring框架中的设计模式(五)

Spring框架中的设计模式(五) 通过以前的4篇文章,我们看到Spring采用了大量的关于创建和结构方面的设计模式。本文将描述属于行为方面的两种设计模式:命令和访问者。 前传: Spring框架中的...

瑞查德-Jack
24分钟前
0
0
解决phpstorm运行很卡问题!

phpStorm一旦达到这个临界值,所有智能提示、自动补全都失效了 这TM就很尴尬了,顿时感觉自己就是个废人了,纯手写代码跟便秘一样 众所周知phpStorm基于JAVA,那么这个内存限制肯定跟JAVA的虚...

sjcehui2010
27分钟前
0
0
javascript前端AES加密解密

参考了一下网上的代码加上自已的一些想法,修改,key也可以是中文, 要引入一个aes.js的js文件。 html代码 <html> <head> <title>AES加解密</title> <meta http-equiv="Content-Type"......

oisan_
31分钟前
0
0
MacOS和Linux内核的区别

有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我们来看...

六库科技
35分钟前
0
0
Vue.js-自定义事件例子

自定义组件的 v-model 2.2.0+ 新增 一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value 特性用于不同的目的。m...

tianyawhl
38分钟前
0
0
RobotThread.cpp

#include "RobotThread.h"RobotThread::RobotThread(int argc, char** pArgv, const char * topic) :m_Init_argc(argc), m_pInit_argv(pArgv), m_topic(topic){/** ......

itfanr
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部