初次集成环信的话还是有很多坑的, 我也是个新手,技术客服各种问,各种找人,才堪堪摸到门槛,记录下一点东西,希望给那些初次集成的朋友一点tips.
1,集成环信的时候,如果你不需要很多如视频聊天,等的功能,那么你直接导入easeui这个module就行了, 不需要按照文档里在libs中添加一堆依赖了,会有冲突.
2,在MyApplication里初始化的时候,如果你是导入easeui,那么文档上初始化的有一条就需要改过来了.(后面的东西都是基于easeui写了)
3,然后在你对应的界面跳转聊天界面
Intent chat = new Intent(activity, ChatActivity.class); chat.putExtra(EaseConstant.EXTRA_USER_ID, list.get(position).getName());//对方账号 activity.startActivity(chat);
4,ChatActivity过渡到easeui的聊天界面,不多说,直接上ChatActivity的代码,此处我用的是FrameLayout,
当然你也可以直接用一个LinearLayout.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/layout_chat"> FrameLayout>
开始跳转聊天页面了.
EaseChatFragment easeChatFragment = new EaseChatFragment();//环信聊天界面 easeChatFragment.setArguments(getIntent().getExtras());//需要的参数 //切换fragment getSupportFragmentManager().beginTransaction().add(R.id.layout_chat, easeChatFragment).commit();
5,如果你做完上述的,那么恭喜你,你已经简单的集成了环信聊天了,可以在原生界面发送消息什么的了,如果你觉得原生的不好看,
或者你想把头像修改成圆形,自定义气泡框和扩展栏,那么往下看.
a> 修改圆形头像
我先上图圈出几个相关的地方
一不小心多圈了几个地方,不要见怪.没错,首先找到easeUserUtils,如果你的图片请求框架刚好用的Glide,那么很简单,
将这个设置头像方法里有Glide的全都改一下,这里仅仅列举一个,重点是框框里面的,github上已经有大神给封装好了
glide直接设置圆形图片的方法,只需要添加个依赖就行, 各位就不需要再单独写个设置圆形图片的类了.是不是很简单.
compile 'jp.wasabeef:glide-transformations:2.0.1';
b>,修改气泡框
上面手滑的时候圈出来的,EaseChatRowText的两个布局里,修改.9图片就行啦,当然了,不仅仅是这一个
地方要修改,chatrow包下基本都要修改.做完这一步想必大家基本都会了,先上图吧,无图无真相
c>,修改扩展栏
到这里我猜很多人都知道该怎么修改下面的那个扩展栏了,其实在一开始的EaseChatFragment里面就可以
修改扩展栏里的图片,但是怎么修改这个图片, 文字大小呢,下面就不上图了,
要修改这个语音啊,笑脸啊,加号,找到EaseChatPrimaryMenu这个类的布局,ease_widget_chat_primary_menu,
名字太长了, 进去就会发现,真xx简单.
那么修改下面的如图片,位置这些呢,一样,找到EaseChatExtendMenu这个类的布局,ease_chat_menu_item,进去
修改就行了,到此简单的聊天界面修改就完成了.当然想要运行还需要一点必备的东西
6,你会发现发送大图崩溃, 地址位置发送不了,是不是需要集成百度地图呢?no, no ,no;
<activity android:name="com.hyphenate.easeui.ui.EaseShowBigImageActivity" android:screenOrientation="portrait"/> <activity android:name="com.hyphenate.easeui.ui.EaseBaiduMapActivity" android:screenOrientation="portrait" android:theme="@style/horizontal_slide" /> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" /> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="3ecea51f560650b1ed8a4b99808f52e8" />
如此,就可以了.
7,最后就是重点了,集成环信之后,当你打包你的apk时,很有可能会遇到java.util.zip.ZipException等等错误,
不过大多数都是v4包冲突,什么ColorRes,什么MutilDex等等很多,教你一招搞定
android {
configurations { all*.exclude group: 'com.android.support', module: 'support-v4' all*.exclude group: 'com.android.support', module: 'support-annotations' }
}
在build.grandle里加上中间这个configurations就行了
如果你的app在libs目录下导入了nineoldandroids这个jar包,那么肯定就有冲突了,那就赶紧找找是不是添加了
重复的v4包.
好了,简单的一点集成环信的小tips就到此为止了.