读书人

SpannableStringBuilder 跟 Spannable

发布时间: 2012-07-24 17:47:58 作者: rapoo

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);      }

读书人网 >移动开发

热点推荐