此片博文只适用于 RongCloud Android SDK kit 2.1.0 以后的版本
大家期待已久的 融云 2.0+ 稳定版已经发布啦 首先在这里感谢大家对融云的支持 融云2.0+ 自定义强大 功能多多 这里陆续为大家做一些自定义的演示
融云官网请点我 融云Android 开发者群:429046885
1: 怎样在融云的会话界面输入文字右侧点击 " + " 弹出的 bar 中 对 已有的 位置 图片 语音 进行添加或者删除:
如上图所示: 我只需要我的 bar 中出现 位置 和 相机 需要在代码中做如下配置:(另外两个配置类 ImageInputProvider 相册 VoIPInputProvider 语音)
//我需要让他显示的内容的数组 此处示例 语音 位置
ExtendProvider [] ep = {new LocationInputProvider(RongContext.getInstance()),new CameraInputProvider(RongContext.getInstance())};
//我需要让他在什么会话类型中的 bar 展示
RongIM.resetInputExtensionProvider(ConversationType.PRIVATE, ep);
配置完成运行以后,你会发现你单聊的 "+" 中bar 里面就会出现如上图的效果
注: 1 如果您自己的工程当中点击出来就没有位置的模块 是因为您没有实现
RongIM.LocationProvider
相关代码
2 如果您不需要使用到语音相关的功能 你可以把bar中的语音隐藏后 再把 工程 的libs 的 arm arm-v7 x86 中的 语音相关的 voip.so umcs.so删除
这样可以减小你apk
2:怎么在"+"中的 bar 增加自定义 模块:
首先您需要去 自定义一个类 继承 ExtendProvider 然后实现他的 构造方法 和 没有实现的 方法 详情见下面代码:
public class TestProvider extends ExtendProvider{
private Context mContext;
public TestProvider(RongContext context) {
super(context);
mContext = context;
}
//设置 展示的图标
@Override
public Drawable obtainPluginDrawable(Context arg0) {
// TODO Auto-generated method stub
return arg0.getResources().getDrawable(R.drawable.btn_default);
}
//设置 图标下的title
@Override
public CharSequence obtainPluginTitle(Context arg0) {
// TODO Auto-generated method stub
return "表情";
}
//点击事件
@SuppressWarnings("static-access")
@SuppressLint("ShowToast")
@Override
public boolean onPluginClick(View arg0) {
arg0.inflate(mContext, R.layout.select_dialog_item, null);
return true;
}
}
实现这步 以后 您还需要 把他 加入
resetInputExtensionProvider 的数组里面
//我需要让他显示的内容的数组 此处示例 语音 位置 自定义 Test 模块
ExtendProvider [] ep = {new LocationInputProvider(RongContext.getInstance()),new CameraInputProvider(RongContext.getInstance()),
new TestProvider(RongContext.getInstance())};
//我需要让他在什么会话类型中的 bar 展示
RongIM.resetInputExtensionProvider(ConversationType.PRIVATE, ep);
此处值得注意的是 根据 数据 的排序 你可以控制 bar 中的模块功能的 位置 例如 我上图中 讲 表情这个模块 放在 数组的第三个位置 展现的位置就是第三个 这里开发者 可以根据 您的需求 或者 喜好来控制
下面是一个优秀的开发者的实现的示例图:
未完待续......
推荐github一个好用的框架