`
407827531
  • 浏览: 1069932 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

高亮的关键字

 
阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

EditText:

  通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢? 
记得android中有个android.text包,这里提供了对文本的强大的处理功能。 
添加图片主要用SpannableString和ImageSpan类:

     Drawable drawable = getResources().getDrawable(id);  
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
        //需要处理的文本,[smile]是需要被替代的文本  
        SpannableString spannable = new SpannableString(getText().toString()+"[smile]");  
        //要让图片替代指定的文字就要用ImageSpan  
        ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);  
        //开始替换,注意第2和第3个参数表示从哪里开始替换到哪里替换结束(start和end)  
       //最后一个参数类似数学中的集合,[5,12)表示从5到12,包括5但不包括12  
        spannable.setSpan(span, getText().length(),getText().length()+"[smile]".length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);    
        setText(spannable);  

将需要的文字高亮显示: 

 

public void highlight(int start,int end){  
        SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());//用于可变字符串  
        ForegroundColorSpan span=new ForegroundColorSpan(Color.RED);  
        spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        setText(spannable);  
    }  
 

加下划线: 

 

public void underline(int start,int end){  
        SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());  
        CharacterStyle span=new UnderlineSpan();  
        spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        setText(spannable);  
    }  
 

组合运用:

 

SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());  
        CharacterStyle span_1=new StyleSpan(android.graphics.Typeface.ITALIC);  
        CharacterStyle span_2=new ForegroundColorSpan(Color.RED);  
        spannable.setSpan(span_1, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        spannable.setSpan(span_2, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        setText(spannable);  
 

案例:带有\n换行符的字符串都可以用此方法显示2种颜色

 

    /** 
     * 带有\n换行符的字符串都可以用此方法显示2种颜色 
     * @param text 
     * @param color1 
     * @param color2 
     * @return 
     */  
    public SpannableStringBuilder highlight(String text,int color1,int color2,int fontSize){  
        SpannableStringBuilder spannable=new SpannableStringBuilder(text);//用于可变字符串  
        CharacterStyle span_0=null,span_1=null,span_2;  
        int end=text.indexOf("\n");  
        if(end==-1){//如果没有换行符就使用第一种颜色显示  
            span_0=new ForegroundColorSpan(color1);  
            spannable.setSpan(span_0, 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        }else{  
            span_0=new ForegroundColorSpan(color1);  
            span_1=new ForegroundColorSpan(color2);  
            spannable.setSpan(span_0, 0, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
            spannable.setSpan(span_1, end+1, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
              
            span_2=new AbsoluteSizeSpan(fontSize);//字体大小  
            spannable.setSpan(span_2, end+1, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        }  
        return spannable;  
    }  

以上实际都是Html.fromHtml(html)的代码实现形式。

=============================================================================

TextView: (方法与EditView类似)

如何让一个TextView中的关键字高亮显示? 

 

/** * 关键字高亮显示 * @param target 需要高亮的关键字 */publicvoid highlight(String target){ String temp=getText().toString(); SpannableStringBuilder spannable =new SpannableStringBuilder(temp); CharacterStyle span=null; Pattern p = Pattern.compile(target); Matcher m = p.matcher(temp); while (m.find()) { span =new ForegroundColorSpan(Color.RED);//需要重复!
//span = new ImageSpan(drawable,ImageSpan.XX);//设置现在图片 spannable.setSpan(span, m.start(), m.end(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } setText(spannable); }
分享到:
评论

相关推荐

    Xshell软件(配色方案&高亮关键字/突出显示集)的相关文件

    文件描述:Xshell软件(配色方案&高亮关键字/突出显示集)的相关文件 适用人群:所有IT计算机行业人群,重点突出用户为“网络工程师、运维工程师、弱点工程师、云计算工程师、网络安全工程师等技术人员” 软件适用...

    textarea,textbox高亮关键字

    最近开发的时候做了textarea 高亮关键字,尝试过很多方法,比如用iframe,和编辑器替换,当然这也是一个方法,但是原来是用textbox的内容要达到兼容这两种方法是做不到的,所以这里是使用jquery插件和jquery核心文件搞的...

    超强RichEdit控件,自动换行,高亮关键字

    本文将深入探讨这个控件的特点、功能以及如何实现自动换行和关键字高亮。 RichEdit控件,源自Microsoft的Rich Text Format(RTF)技术,是一种增强型的文本编辑器,相比于普通的Edit控件,它提供了更多高级特性,如...

    jquery动态高亮关键字(可同时高亮多个)

    为了高亮关键字,我们需要创建一个CSS类,用于改变被选中的关键字的样式。例如: ```css .highlight { background-color: yellow; font-weight: bold; } ``` 3. **编写jQuery函数**: 创建一个函数,接收...

    VBA关键字自动标记高亮关键字字体颜色.xlsm

    VBA关键字自动标记高亮关键字字体颜色.xlsm 将关键字设置高亮的颜色

    JQuery 关键字高亮插件

    // 使用插件高亮关键字 elementsToHighlight.highlight(keyword); }); ``` 在这个例子中,`highlight`函数是插件提供的方法,它会搜索元素中的文本,找到并替换匹配的关键字,将其包裹在一个带有特定样式的元素...

    RichEdit自动换行,高亮关键字。Edit自动换行

    本文将深入探讨`RichEdit`控件如何实现自动换行以及高亮关键字,同时也会提及`Edit`控件的自动换行功能。 首先,让我们理解什么是`RichEdit`控件。`RichEdit`是Microsoft开发的一种富文本编辑组件,支持RTF(Rich ...

    android+lucene实现全文检索并高亮关键字索引库

    在Android平台上实现全文检索并高亮关键字,常常需要用到开源全文搜索引擎Lucene。Lucene是一个高性能、全文本搜索库,提供了一个简单但强大的应用编程接口(API)用于索引和搜索文本。下面我们将深入探讨如何在...

    安卓搜索相关相关-androidlucene实现全文检索并高亮关键字.rar

    这个压缩包"安卓搜索相关相关-androidlucene实现全文检索并高亮关键字.rar"显然包含了一种利用Apache Lucene库在Android平台上实现这一功能的方法。Apache Lucene是一个强大的开源全文搜索引擎库,它提供了高效的...

    高亮显示关键字

    高亮显示 关键字 function HeightLight(Keyword) { //文本选择器 var TextRange; //是否找到 var Found=false; //找到的次数 var Count = 0; TextRange = document.body.createTextRange(); Found = ...

    android+lucene实现全文检索并高亮关键字

    在Android平台上实现全文检索并高亮关键字是一项技术挑战,但通过集成Apache Lucene库,可以有效地解决这个问题。Apache Lucene是一个高性能、可扩展的信息检索库,它为开发人员提供了强大的文本搜索功能。以下是对...

    excel VBA高亮显示关键字.xla

    wps VBA excel高亮显示关键字 excel在搜索关键字时会把关键字高亮突出显示出来 遇到关键字就自动变色高亮的 , 是可以自己定义要变色的关键字

    Source Insight 语言高亮关键字 配置文件

    本文将深入探讨如何配置Source Insight使其支持特定语言的关键字高亮,从而提升编程时的效率和舒适度。 首先,关键词高亮是Source Insight的核心特性之一,它能够帮助开发者快速识别和区分代码中的关键字,比如在...

    在RichTextBox中实现关键字高亮显示

    本文将详细讲解如何在C#的WinForms环境中,利用RichTextBox控件实现关键字高亮显示。 首先,我们需要了解`RichTextBox`的基本操作。`RichTextBox`控件提供了丰富的文本格式化功能,包括字体、颜色、样式等设置。在...

    如何设置SecureCRT窗口输出代码关键字高亮

    ### 如何设置SecureCRT窗口输出代码关键字高亮 在日常工作中,我们经常需要通过SecureCRT等工具连接远程服务器进行操作。对于开发人员和技术支持工程师来说,能够高效地浏览和定位日志文件或代码中的关键信息至关...

    jS 正则表达式实现关键字高亮显示

    在本文中,我们将深入探讨如何利用正则表达式实现关键字的高亮显示,尤其适用于文本搜索和代码高亮场景。下面将详细阐述这一技术的实现原理和步骤。 1. **正则表达式基础** 在JS中,正则表达式是通过构造函数`...

    微信小程序实时搜索并高亮关键字效果

    今天写一个实时搜索并高亮关键字的微信小程序demo,已上传GitHub,需要自取 微信小程序实时搜索高亮关键字demo 这是一个我项目中的截图,但是数据结构又略微有点复杂,不好演示,所以单独又写了一个demo,数据来自...

    jquerymark强大的jQuery关键字文本高亮插件

    这个插件的核心功能是能够快速地在网页中的文本中找到并高亮显示用户指定的关键字,无论是单个词汇、变音符号、同义词还是自定义元素,它都能够处理得游刃有余。以下将详细解析`jquery.mark`的主要特点和使用方法。 ...

    JS 关键字高亮显示

    很好用的JS关键字高亮显示代码 代码简洁 实用

    脚本实现securecrt语法高亮

    脚本实现securecrt语法高亮 之前要实现securtcrt语法高亮要纯手工云设置,很麻烦,使用脚本则小白都可实现,只要在securtcrt菜单栏选择script-->run,在弹出的对话框中选择highlight.py,这是会让选择高亮语法的配置...

Global site tag (gtag.js) - Google Analytics