在android项目中有时候要用到表情,今天介绍一种插入表情到EditText或TextView中的方法。
思路是用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, Math.min(
(int) (32 * MainActivity.mainActivity.proportion),
d.getIntrinsicWidth()), Math.min(
(int) (32 * MainActivity.mainActivity.proportion),
d.getIntrinsicHeight()));
return d;
}
};
然后以html的方式加入到控件上:
chat_input.append(Html.fromHtml("<img src='" + rid + "'/>",
imageGetter, null));