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
    评论
Android 中实现 emoji 表情选择的 View,一般可以采用以下两种方式: 1. 使用第三方库 可以使用一些开源的第三方库,如: - Emoji-Keyboard:https://github.com/rockerhieu/emojicon - EmojiEditText:https://github.com/kimoBiko/EmojiEditText - EmojiCompat:https://developer.android.com/topic/libraries/support-library/packages#emoji-compat 这些库都提供了丰富的 emoji 表情选择界面和相关的实现方法,可以方便地集成到项目中。 2. 自定义 View 如果需要更灵活地实现 emoji 表情选择的 View,可以自己实现一个自定义 View。具体实现步骤如下: 1. 准备 emoji 表情资源 首先需要准备 emoji 表情的资源,可以自己设计或者使用现成的资源。将这些资源放在项目的 res 目录下。 2. 自定义 View 自定义 View 可以继承自 LinearLayout,包含一个 EditText 和一个 GridView。 在 EditText 的右侧添加一个按钮,点击按钮时显示 emoji 表情选择的 GridView,点击表情后将表情插入到 EditText 中。 3. 实现表情选择的 GridView GridView 中的每个表情可以使用 ImageView 显示,可以通过设置表情资源的 ID 来显示不同的表情。在表情选择界面的底部可以添加一个删除按钮,点击删除按钮可以删除 EditText 中的最后一个字符或者最后一个表情。 4. 实现点击表情插入到 EditText 的功能 当用户点击 GridView 中的表情时,可以将表情插入到 EditText 中。可以通过在 EditText 中插入一个 SpannableString 来实现,其中 SpannableString 中包含了表情的资源 ID。 以上就是实现 emoji 表情选择的 View 的一般步骤,可以根据具体需求进行自定义实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值