Android Emoji表情方案

emoji
一,比较简单的emoji方案:
1,选择表情:从EmojiBean(resId,unicode码),选择表情后,将unicode码拼在String上显示在输入框,输入框中会根据所有字符的unicode找到对应的resId,int unicode = Character.codePointAt(text, i); Map < int unicode,int resId>.get(unicode); if != null setSpan 带unicode字符串转成带emoji字符串
2, 将带unicode字符串上传到服务器;
3,将从服务器拿到的带unicode字符串中的字符拿出来得到unicode,重复一方案.

二,比较完善的emoji方案:
1,选择表情(EmojiBean),输入的字符串用ImageSpan的形式,图片是EmojiBean中对应的resId转换而成,文字是EmojiBean中uniCode码对应的16进制int值用[]括起来生成的String(”[1f60a]”);
2,发送至服务器:抽出所有的ImageSpan,判断对应的文字是不是包含”[]”,如果包含,则将里面的内容”1f60a”转换成16进制int再转换成unicode码;
3,从服务器得到数据并展示:将服务器返回的字符串转成int数组(unicode码对应的10进制int值组成),将数组中的值在包含emoji信息的Map<10进制int,16进制int对应的String>中查找,如果找到了,说明是emoji对应的10进制值,将其16进制值加[e][/e]标签,然后将所有转换后的字符串用正则匹配,找出[e]value[/e]标签并将value(16进制)拼成resId(R.drawable.value),找出对应的图片资源,设置ImageSpan.
sp:一个emoji<–>一个unicode码<–>一个16进制int值<–>一个10进制int.

三,最简单的方案
不与unicode码挂钩,定义表情对应的中文字符,例如:☺–>[笑脸],选择表情时,将表情对应的中文字符转成imagespan显示在edittext中(表情resId和中文字符作为数据源填充在gridview中),发送时直接发送对应中文([笑脸]),接收时正则匹配带方括号([])的字符串,用字符串作为key,去含有表情resId和对应中文字符的Map中拿到resId,设置ImageSpan;

三种方案的Demo正在整理中,有急需的同学可以私信我.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值