前言:今天无聊翻了翻之前做的一个IM程序,趁着午休时间将聊天表情部分代码摘出来记录一下。
所谓表情消息,其实就是一串特殊格式的字符串,记得之前QQ是可以手输表情的。我的思路是将图片与名字(也就是前面说的特殊格式的字符串)进行一一对应,利用ViewPager+GridView展示表情列表,点击某一表情获取表情名字,然后转为Bitmap后再转为ImageSpan插入到EditText中。
1、资源准备
将所需要的表情图片放在aeest资源下,我这里直接从项目中摘出来的,也可以自己手动添加,名字格式要保持一致
2、初始化
定义一个List,用于保存各个图片的名字
private void initStaticFaces() { try { staticFacesList = new ArrayList<String>(); String[] faces = getAssets().list("face/png"); for (int i = 0; i < faces.length; i++) { staticFacesList.add(faces[i]); } //去掉删除图片 staticFacesList.remove("emotion_del_normal.png"); } catch (Exception e) { e.printStackTrace(); } }
初始化数据后初始化Viewpager
//获取页数 private int getPagerCount() { int count = staticFacesList.size();