Android—文字中插入表情

  • Post author:
  • Post category:其他


这段时间在做一个短信项目,需要实现短信中插入表情的功能,本一位非常困难,经过一段时间的研究,发现还是比较簡単的,现在总结如下。

以短信输入框为例,短信的输入框是一个EditText,它的append方法不仅可以加入字符串,还可以添加HTML标记。以下就是使用HTML标记添加表情的具体操作。

首先需要构建一个ImageGetter,作用是通过HTML标记获得对应在res目录下的图片:

ImageGetter imageGetter = new ImageGetter() {

@Override

public Drawable getDrawable(String source) {


int id = Integer.parseInt(source);

//根据id从资源文件中获取图片对象

Drawable d = getResources().getDrawable(id);

d.setBounds(0, 0, d.getIntrinsicWidth(),d.getIntrinsicHeight());

return d;

}

};

然后就可以直接往EditText视图中添加

inputLable.append(Html.fromHtml(“<img src='”+clickedImageId+”‘/>”, imageGetter, null));

其中 Html.fromHtml(“<img src='”+clickedImageId+”‘/>”就是HTML的图片标记,在Android中支持了部分HTML标记的使用(这方面我还在继续研究),HTML标记必须被Html.fromHtml修饰。imageGetter即为之前创建的ImageGetter类型的对象。

很简单的几句代码就解决了问题,不仅在EditText中,在TextView中同样可以这样插入图片。

效果图:

Android---文字中插入表情 - 少不壮 - spf9190的博客
2011070717362473.png

转载于:https://www.cnblogs.com/gyflyx/archive/2011/07/07/2100276.html