android基于环信的聊天和表情自定义

环信sdk的导入

官方文档,自行查看,这里就不多说了。

 自定义聊天界面

此处只有静态图,请谅解。


自定义表情发送
自定义聊天界面

简单说下自定义的聊天界面,一个带有recyclerview和的xml文件,和对应的adapter即可。recyclerview为展示聊天信息。通过EMClient.getInstance().chatManager().getConversation(mChatId, null, true).getAllMessage(),可以得到聊天的数据,然后将其适配到adapter里面,即可完成简单的聊天界面了。下面主要说一下,基于环信的表情简单集成.

表情的简单集成

找到环信demo里面的easeui,找到其中的几个类:EaseDefaultEmojiconDatas,EaseEmojicon,EaseEmojiconGroupEntity,EaseSmileUtils,EaseUI,FaceConversionUtil。复制粘贴到自己的项目,如果有报错,注释掉就行。

大致的思路是:每一个表情都有对应的字符串,将他们装到map里面,发送表情的时候其实是发的一个字符串,在解析得到的消息的时候,通过对应关系,找到相对应的表情,然后展示出来,在这几个类里面主要依靠EaseSmileUtils中的getSmiledText(Context context,CharSequence text)中的addSmiles(Context context,Spannable spannable)进行一个表情的转化。

这样就算是完成了一个简单的聊天。

表情和软键盘的滑润切换

在实际项目中,为了用户体验,需要做到表情和软键盘的滑润切换,我的实现思路是这样子的:


点击edittext将SoftInputMode改为RESIZE,同时获取焦点,显示软键盘。
点击显示图片,让edittext失去焦点,同时将SoftInputMode改为NOTHING

软键盘弹出遮住聊天内容

因为聊天内容是用的recyclerview展示的,所以在软键盘弹出过后会遮住下面的内容,这其中在看完一篇博客过后得到解决(具体哪篇搞忘了),即自定义一个LinearLayout,在高度发生变化后进行一个重绘。

好了,也就差不多这些,因为是新手,所以写得不是很明白的,敬请谅解,下面附上项目地址:

源码点击此处~ 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,904评论 22 665
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,573评论 25 708
  • 昨天,看到一位老师发了这样一个状态,瞬时感慨万千,相信老师们也一定都有同样的体会: 我走娃未醒,我归娃已睡。 为师...
    咸阳阿飞阅读 273评论 0 2
  • 我是日记星球239号星宝宝,我叫叶子。我参加了日记星球第五期21天的蜕变之旅,虽然课程已经结束,不过我学习的脚步不...
    水晶妈咪阅读 351评论 0 0
  • 给自己: 今天有几份感悟 1,经常觉察心绪是否杂乱,觉察之后可以有两种办法1),问自己几遍为什么?找到根本的原因之...
    日出东方天刚晓阅读 202评论 0 0