• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

融云即时通讯SDK集成-定制UI一-会话界面小改动

android 搞代码 4年前 (2022-03-02) 32次浏览 已收录 0个评论
文章目录[隐藏]

融云即时通讯SDK集成 — 定制UI(一) ——会话界面小改变

背景:

最近公司新上的app要加上即时通讯的性能, 本人疾速实现一个当然是不可能的了(我的项目deadline也顶不住哇).就从各家成熟的SDK厂商选来选去的, 各有各的好也各有各的有余.最初点兵点将,选了融云家的SDK(老板说了算hhhh).
他家的官网和文档地址:
官网:https://www.rongcloud.cn/
文档:https://docs.rongcloud.cn/v4
这个工作当然还是落在我的头上. 我是应用的他们家的带UI的sdk,(他们家有带UI和不带UI的两种sdk, 不带UI的sdk就是只有即时通讯能力, 所有的UI都须要开发者自定实现, 带UI的sdk封装了一些根本的界面,例如会话列表, 和他人聊天的会话界面.)当然这些曾经集成了UI的sdk并不能齐全满足一个产品的需要, 所以这篇文章次要跟大家讲下如何对他们家的UI进行简略的自定义.

融云SDK接入会话列表/会话界面

大家集成的话能够间接依照他们家的疾速集成的步骤走, 蕴含了集成会话列表以及会话界面. 这里是链接: 疾速集成SDK (https://docs.rongcloud.cn/v4/views/im/noui/guide/quick/include/android.html)

接入之后, 能够依照适合的逻辑跳转入这两个根本的界面, 如图所示:
会话列表:

会话界面

能够看到咱们的app中当初领有了默认会话列表和会话界面UI, 能够应用根本的性能了. 然而这些根本的UI虽说不上难看, 然而也够不上精美. 所以UI这块还是须要咱们自行来做一些定制的.

为了给大家演示, 我这里改的比拟夸大了一点, 非常俊俏, 但直观哈哈哈.

如图我间接更改了两边发送者&接收者的字体色彩,字体大小,字体款式. 也更改了单方的聊天气泡.

批改一般文字音讯类型的音讯, 间接继承了TextMessageItemProvider. 把父类里边所有的代码都复制进来, 而后在bindView()的时候做批改

能够看到我把款式轻易改了一下. 两个方向的气泡都改成了箭头左向的.

<code class="java">    @Override
    public void bindView(final View v, int position, TextMessage content, final UIMessage data) {
        ViewHolder holder = (ViewHolder) v.getTag();
        holder.receiverFire.setTag(data.getUId());
        if (data.getMessageDirection() == Message.MessageDirection.SEND) {
            holder.message.setBackgroundResource(R.drawable.rc_ic_bubble_right);
        } else {
            holder.message.setBackgroundResource(R.drawable.rc_ic_bubble_left);
        }
        if (content.isDestruct()) {
            bindFireView(v, position, content, data);
        } else {
            holder.sendFire.setVisibility(View.GONE);
            holder.receiverFire.setVisibility(View.GONE);
            holder.unRead.setVisibility(View.GONE);
            holder.message.setVisibility(View.VISIBLE);
            final AutoLinkTextView textView = holder.message;
            processTextView(v, position, content, data, textView);
        }
    }

做完改变, 还须要给这个类增加这样的注解能力绑定TextMessage的渲染:

<code class="java">@ProviderTag(
        messageContent = TextMessage.class,
        showReadState = true
)
    public class MyTextMessageItemProvider extends TextMessageItemProvider

而后记得在init 咱们SDK之后, 注册一下这个Provider.

<code class="java">    RongIM.init(this, APP_KEY);
    RongIM.registerMessageTemplate(new MyTextMessageItemProvider());

这样所有收到的类型为TextMessage的音讯, 都会依照我这里定义的TextMessageItemProvider来做展现了. 其余类型的音讯也是一样的, 语音, 文件, 地位音讯. 只有想改UI, 实质上都是集成相应的MessageItemProvider, 而后重写bindView()办法.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:融云即时通讯SDK集成-定制UI一-会话界面小改动

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址