EaseUI 使用指南
简介
EaseUI 是一个 UI 库,封装了 IM 功能常用的控件、fragment 等等,旨在帮助开发者快速集成环信 SDK。
EaseUI 及 Demo 的 GitHub 下载地址为:
注意:因为这是一个 UI 库,后续很可能还会继续改动,新旧版本在 API 的兼容上不会像 IM SDK 那样绝对的兼容。
代码导入
EaseUI 库的代码是开源的,下载的 SDK 压缩包里面已经包含此库,解压后路径为/examples/easeui。
Eclipse 中导入
先把 EaseUI 项目导入到 Eclipse 中。
在自己的项目中把 EaseUI 作为一个 library 引入。右键你的项目 → Android → 点击右下角的 Add 按钮 → 选中 EaseUI → OK → OK。
Android Studio 中导入
打开你的 AS 项目 → File → New → Import Module → 选择或输入 EaseUI 库路径 → Next → Next → Finish。
导入完可能会有如下错误:
找到相应报错的地方把swipeRefreshLayout.setColorSchemeResources改成swipeRefreshLayout.setColorScheme,ViewCompat.getX改成new ViewCompat().getX,然后重新 build 即可。
或者,把v4包的版本号加大,譬如compile 'com.android.support:support-v4:23.1.1'。
主要 fragment
EaseChatFragment – 聊天页面,最主要的fragment
EaseContactListFragment – 联系人页面
EaseConversationListFragment – 会话列表页面
主要控件
EaseTitleBar – 标题栏
EaseChatMessageList – 聊天消息列表控件
EaseConversationList – 会话列表控件
EaseContactList – 联系人列表页面
EaseChatInputMenu – 聊天输入菜单栏
其他子控件,后文会做详细介绍
这里对聊天页面几个控件做简单图示:
初始化
正式使用 EaseUI 需要先调用初始化方法,在 Application 的 oncreate 里调用初始化。
EaseUI.getInstance().init(applicationContext)
启动聊天会话 fragment
new 出 EaseChatFragment 或者其子类,调用 setArguments 方法传入 chatType(会话类型)和userId(用户或群id),通过 getSupportFragmentManager() 启动 fragment。
//new出EaseChatFragment或其子类的实例
EaseChatFragment chatFragment = new EaseChatFragment();
//传入参数
Bundle args = new Bundle();
args.putInt(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_GROUP);
args.putString(EaseConstant.EXTRA_USER_ID, "zw123");
chatFragment.setArguments(args);
getSupportFragmentManager().beginTransaction().add(R.id.container, chatFragment).commit();
聊天会话 fragment 功能扩展
EaseUI 提供现成的聊天相关能直接使用的 fragment,APP 无需任何改动,可以直接使用(可参考simpledemo)。也可以通过继承 EaseUI 里的 fragment 亦或是直接使用 EaseUI 里提供的 widget 扩展自己的需要的功能。
自组合 widget 实现会话 fragment
自组合控件时可参考 EaseChatFragment 类。
注意:使用 EaseUI 中的自定义控件时,如果需要 xml 中设置其属性(具体哪些属性可查看 attrs 文件),务必在 xml 根节点中加上
1. 标题栏控件 EaseTitleBar 使用
在 xml 中声明标题栏控件,可以在 xml 直接设置标题内容,左右图片,在 Java 文件中亦可以设置这些属性以及相关的点击事件。
示例:
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
easemob:titleBarLeftImage="@drawable/ease_mm_title_back" />
titleBar = (EaseTitleBar) getView().findViewById(R.id.title_bar);
titleBar.setTitle("张建国");
titleBar.setRightImageResource(R.drawable.ease_mm_title_remove);
2. 聊天消息列表控件 EaseChatMessageList 使用
EaseChatMessageList 默认包含文字、表情、图片、语音、视频、文件消息的显示。
使用该控件,可以在 xml 中设置其 item(chatrow) 的背景图片,是否显示用户头像、昵称等属性。