关键字高亮显示
2015-07-17 15:44
357 查看
package com.example.changesearchkeycolordemo.Utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.graphics.Color;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
/**
* Created by shirr on 2015/7/16.
*/
public class ChangeKeyWordColorUtils {
/*
* set关键字到对应textview的时候,如果前面添加字符,样式失效;
* 例如:返回样式是temp set值时 setTextview("结果是:", + temp);
*/
/**
* 关键字变色
*/
public static SpannableString StrResult(String keyword, String strtext){
SpannableString spanStr = new SpannableString(strtext);
Pattern p = Pattern.compile(keyword);
Matcher m = p.matcher(spanStr);
while (m.find()) {
int start = m.start();
int end = m.end();
spanStr.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return spanStr;
}
/*
* 使用html代码更改搜索关键字的样式
* <span>文字</span>搜索出来的关键字不加标志线
* <p></p>搜索出来的关键字有标志线
*/
public static Spanned PutStrHtml(String keyword, String strtext) {
int index = strtext.indexOf(keyword);
int len = keyword.length();
Spanned temp = Html.fromHtml(strtext.substring(0, index)
+ "<span><font color=#FF0000>" + strtext.substring(index, index + len) + "</font></span>"
+ strtext.substring(index + len, strtext.length()));
return temp;
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.graphics.Color;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
/**
* Created by shirr on 2015/7/16.
*/
public class ChangeKeyWordColorUtils {
/*
* set关键字到对应textview的时候,如果前面添加字符,样式失效;
* 例如:返回样式是temp set值时 setTextview("结果是:", + temp);
*/
/**
* 关键字变色
*/
public static SpannableString StrResult(String keyword, String strtext){
SpannableString spanStr = new SpannableString(strtext);
Pattern p = Pattern.compile(keyword);
Matcher m = p.matcher(spanStr);
while (m.find()) {
int start = m.start();
int end = m.end();
spanStr.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return spanStr;
}
/*
* 使用html代码更改搜索关键字的样式
* <span>文字</span>搜索出来的关键字不加标志线
* <p></p>搜索出来的关键字有标志线
*/
public static Spanned PutStrHtml(String keyword, String strtext) {
int index = strtext.indexOf(keyword);
int len = keyword.length();
Spanned temp = Html.fromHtml(strtext.substring(0, index)
+ "<span><font color=#FF0000>" + strtext.substring(index, index + len) + "</font></span>"
+ strtext.substring(index + len, strtext.length()));
return temp;
}
}
相关文章推荐
- SpannableString
- SpannableString
- Android 在TextView中设置不同的字体、颜色、链接等
- Android文本显示效果(Spannable)
- SpannableString
- SpannableString详解
- SpannableString与SpannableStringBuilder
- Android:通过SpannableString为TextView设置丰富的显示效果
- Android用户界面 UI组件--TextView及其子类(三) EditView以及各种Span文字样式讲解
- Android EditText/TextView使用SpannableString显示复合文本
- Android柳叶刀之Button之图文并茂
- SpannableString 对一些特有的字符进行事件监听
- 学徒浅析Android开发:第九讲——SpannableString,让文字活起来
- TextView SpannableString 超链接点击相应
- Android:通过SpannableString为TextView设置丰富的显示效果
- Android中TextView通过SpannableString设置字体、大小、颜色、样式、超级链接
- SpannableString
- SpannableString 用法简单记录
- Android实战技巧:用TextView实现Rich Text---在同一个TextView中设置不同的字体风格
- SpannableStringBuilder 用法浅析以及仿陌陌表情