在Android开发中,有时候需求为发送一些系统里面的表情,类似于搜狗输入法的那种简单表情。调用系统的表情,ios那边可以自动识别,同时也避免自己添加表情的图片。效果是这样子的
然后点击,EditText就会显示这些表情,同时ios那边不需要任何的识别操作,可以直接显示这些表情。开发步骤如下:
S1:定义一个Gridview,适配器用TextView。
S2:获取适配器中数据,也即表情的数据源。可以简单的定义一个EmojiData类
public class EmojiData {
public static int[] emojiint = {
0x1F601,
0x1F602,
0x1F603,
0x1F604,
0x1F605,
0x1F606,
0x1F609,
0x1F60A,
0x1F60B,
0x1F60C,
0x1F60D,
0x1F60E,
0x1F60F,
0x1F612,
0x1F613,
0x1F614,
0x1F616,
0x1F618,
0x1F61A,
0x1F61C,
0x1F61D,
0x1F61E,
0x1F620,
0x1F621,
0x1F622,
0x1F623,
0x1F624,
0x1F625,
0x1F628,
0x1F629,
0x1F62A,
0x1F62B,
0x1F62D,
0x1F630,
0x1F631,
0x1F632,
0x1F633,
0x1F634,
0x1F635,
0x1F637,
0x1F638,
0x1F639,
0x1F63A,
0x1F63B,
0x1F63C,
0x1F63D,
0x1F63E,
0x1F63F,
};
private static ArrayList<String> list = new ArrayList<>();
//获取表情源数据
public static ArrayList<String> initEmojiString() {
for (int i = 0; i < emojiint.length; i++) {
list.add(getEmojiStringByUnicode(emojiint[i]));
}
return list;
}
//将int对应的表情转换为String类型
private static String getEmojiStringByUnicode(int unicode) {
return new String(Character.toChars(unicode));
}
}
S3:将数据加载到适配器中
ArrayList<String> list = EmojiData.initEmojiString();
adapter.setData(list);
gridView_emoji.setAdapter(adapter);
S4:对gridview进行点击即可:
gridView_emoji.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
eidtivew_emoji.append(adapter.getData().get(position).toString());
}
});
总结:表情的处理其实还是比较简单的,最主要的是要清楚默认的系统表情对应的int值以及如何将其转换成能后识别成表情的String类型数据。其他的就是如何展示这些表情的了,以上就这样,欢迎大家发表更好的表情开发方案!
点击查看更多内容
7人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦