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

在EditText中安插表情图片 (CharacterStyle&SpannableString)

2012-07-26 
在EditText中插入表情图片 (CharacterStyle&SpannableString)EditText通常用于显示文字,但有时候也需要在

在EditText中插入表情图片 (CharacterStyle&SpannableString)

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

在EditText中安插表情图片 (CharacterStyle&SpannableString)
    在EditText中安插表情图片 (CharacterStyle&SpannableString)
      在EditText中安插表情图片 (CharacterStyle&SpannableString)
        在EditText中安插表情图片 (CharacterStyle&SpannableString)
          在EditText中安插表情图片 (CharacterStyle&SpannableString)


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

            另外有个问题:如何让一个TextView中的关键字高亮显示?
            http://www.eoeandroid.com/forum.php?mod=viewthread&tid=57880&page=1&extra=#pid558440
            解决如下:

            在EditText中安插表情图片 (CharacterStyle&SpannableString)

              付继承关系:

              在EditText中安插表情图片 (CharacterStyle&SpannableString)

              在EditText中安插表情图片 (CharacterStyle&SpannableString)

              在EditText中安插表情图片 (CharacterStyle&SpannableString)

              扩展学习:
              android开发:TextView中显示HTML和图片
              最近有人咨询我如何在TextView中显示<img src=""/> html标签内的图片,大家都知道,在TextView中显示HTML内容的方法如下所示:

              在EditText中安插表情图片 (CharacterStyle&SpannableString)
                在EditText中安插表情图片 (CharacterStyle&SpannableString)
                  ImageGetter imgGetter = new Html.ImageGetter() {public Drawable getDrawable(String source) {Drawable drawable = null;Log.d("Image Path", source);URL url;try {url = new URL(source);drawable = Drawable.createFromStream(url.openStream(), "");} catch (Exception e) {return null;}drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}};.........TextView description=(TextView)findViewById(R.id.description);description.setText(Html.fromHtml(item.getDescription(),imgGetter,null));


                  怎么样?很简单,第二个参数TagHandler是干什么的呢?从名称我们就知道是处理HTML中的标签的,比如说遇到某个标签就把它替换为….之类的操作都可以通过TagHandler来处理,呵呵,我可没试过哦,瞎猜的,程序员一定要发挥充分的想像力,自己去试一下吧!

                  最后我要说的是,如果你的图片是从网络上获取的,那么你一定不要用这种方法显示一张图片,因为这是最垃圾的办法,你的程序会经常被卡死。

                  那么有没有更好的方法呢?

                  也许不是最好,但我建议您可以使用WebView来显示HTML内容。

                  1 楼 final_ 2011-09-15   其实Html.fromHtml(item.getDescription())这种方法很卡。例如采用html的方法给一段字加下划线,并且修改颜色等。如果把这段字放到listView中,发现listView就会拖动的很差劲,不知道spannableString会不会存在这个效率问题,楼主可否给个答案?

热点排行