美文网首页安卓开发
android基于环信的聊天和表情自定义

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

作者: 2012lc | 来源:发表于2017-07-25 10:35 被阅读431次

    环信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,在高度发生变化后进行一个重绘。

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

    源码点击此处~ 

    相关文章

      网友评论

        本文标题:android基于环信的聊天和表情自定义

        本文链接:https://www.haomeiwen.com/subject/dsfhkxtx.html