先贴一个链接http://blog.csdn.net/u011002668/article/details/50896586
自己根据需求去更改.
先不看代码,先说一下原理,把原理弄明白了,再看代码就很清晰。
在工程中,使用的就是系统的TextView,所以可以看出来显示表情并不是我自定义的功能,而是本身就支持的。只不过通常TextView在显示文本时,我们输入的都是普通的String或者Charsequence,要显示表情,就不能输入普通的String了,而是输入一个特殊的东西,叫SpannableString。
SpannableString,从名字也能看出来,它就是String字符串,只不过它在显示的时候,会把字符串中的一部分替换成一张图片,而当你调用editText.getText()方法时,返回的还是String字符串。所以它就是一段字符串和一张图片的对应。在显示的时候是图片,getText()取出时是String。
这个原理解释清楚后,示例图所展示的功能就不难了。
(1).由于需求的原因,此文只解析微信表情并显示上去,不发送表情
(2).微信表情获取的地址,微信安装路径D:\Program Files (x86)\91 Wireless\91Mobile V5\Dlls\WeChat\Resource\html\expression
(3).表情对应的String,最后面5个微信没有,无法测试
public static final String ee_1 = "/::)";
public static final String ee_2 = "/::~";
public static final String ee_3 = "/::B";
public static final String ee_4 = "/::|";
public static final String ee_5 = "/:8-)";
public static final String ee_6 = "/::<";
public static final String ee_7 = "/::$";
public static final String ee_8 = "/::X";
public static final String ee_9 = "/::Z";
public static final String ee_10 = "/::'(";
public static final String ee_11 = "/::-|";
public static final String ee_12 = "/::@";
public static final String ee_13 = "/::P";
public static final String ee_14 = "/::D";
public static final String ee_15 = "/::O";
public static final String ee_16 = "/::(";
public static final String ee_17 = "/::+";
public static final String ee_18 = "/:--b";
public static final String ee_19 = "/::Q"