首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

SpannableStringBuilder 跟 SpannableString(转)

2012-07-24 
SpannableStringBuilder 和 SpannableString(转)EditText:通常用于显示文字,但有时候也需要在文字中夹杂一

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


关键方法:
public void setSpan (Object what, int start, int end, int flags)
start是起始位置,无论中英文,都算一个。从0开始计算起。end是结束位置,所以处理的文字,包含开始位置,但不包含结束位置。

将需要的文字高亮显示:
    /**      * 关键字高亮显示      * @param target 需要高亮的关键字      */      public void 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);      }

热点排行