环信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)进行一个表情的转化。
这样就算是完成了一个简单的聊天。
表情和软键盘的滑润切换
在实际项目中,为了用户体验,需要做到表情和软键盘的滑润切换,我的实现思路是这样子的:
软键盘弹出遮住聊天内容
因为聊天内容是用的recyclerview展示的,所以在软键盘弹出过后会遮住下面的内容,这其中在看完一篇博客过后得到解决(具体哪篇搞忘了),即自定义一个LinearLayout,在高度发生变化后进行一个重绘。
好了,也就差不多这些,因为是新手,所以写得不是很明白的,敬请谅解,下面附上项目地址: