android 集成腾讯IMSDK4.0.10 TUIKIT即时通信之更改聊天界面头像

 

使用环境:

        2018年集成的腾讯IM云通信,使用的是随心聊类似的集成方式。

        2019年集成的时候,官方推荐TUIKIT依赖module

        github官方demo给的SDK版本已经更新到4.0.10,但是对于用户关系特别是头像等相关没有做集成处理。

这也就导致了,我没有办法主动给聊天人员设置头像,也没有从MessageInfo 中获取消息发送者头像的函数。

本人集成的是腾讯IM通信的TUIKIT 4.0.10群组聊天功能,所以,只给出了修改群组聊天头像的方法和思路。

至于单聊头像的方法和思路,过一段时间再做解析。、

效果图:

改动以前:

                                     android 集成腾讯IMSDK4.0.10 TUIKIT即时通信之更改聊天界面头像

修改以后:

                                     android 集成腾讯IMSDK4.0.10 TUIKIT即时通信之更改聊天界面头像

解决方法直接看第5步:chatAdapter

 

解决流程: 

1 ShadeImageView  继承ImageView的图像展示view

功能

添加显示图片的圆角

2 SynthesizedImageView 继承ShadeImageView 图片显示view

功能

设置默认聊天图片

设置图片显示圆角和大小

3 SessionIconView 布局使用SynthesizedImageView显示头像的view

功能

重复设置会话列表图像的默认图片

使用位置

SessionAdapter

回话列表listView的适配器

在这里判断是否是group群组聊天

不是,显示个人聊天个人头像

是,显示群组聊天头像

4 ChatIconView 布局使用SynthesizedImageView显示头像的view

功能

重复设置聊天头像的默认图片

使用位置

ChatAdapter

在这里对聊天界面的内容进行展示

包括设置聊天头像(我/其他人)

5 ChatAdapter 聊天界面列表适配器

onBindViewHolder

理由viewHolder来对列表进行复制的方法

      在此方法内,有对聊天界面头像的赋值方法:

思路: 根据msg.getFromUser()获取聊天对象的名称

       根据UserName获取此人头像

       赋值头像

 //判断消息是否是我的,如果是就使用从右往左的布局,如果不是,使用从左往右的布局
        //TODO 在这里对各方显示头像进行判断处理
        //根据msg.getFromUser()获取发送消息人的name ,
        //让后台做一接口:根据Name获取headIcon,并赋值
        if (msg.isSelf()) {
            LogUtil.e("是我发送的name==>" + msg.getFromUser());
            chatHolder.userIcon.setDefaultImageResId(R.drawable.send_normal);//我的消息头像赋值
            if (chatHolder.dataView != null) {
                if (mRecycleView.getSelfBubble() != null) {
                    chatHolder.dataView.setBackground(mRecycleView.getSelfBubble());
                } else {
                    chatHolder.dataView.setBackgroundResource(R.drawable.chat_self_bg);
                }
            }
        } else {
            LogUtil.e("不是我发送的name==>" + msg.getFromUser());
            chatHolder.userIcon.setDefaultImageResId(R.drawable.send_pressed);//不是我的消息,头像赋值
            if (chatHolder.dataView != null) {
                if (mRecycleView.getOppositeBubble() != null) {
                    chatHolder.dataView.setBackground(mRecycleView.getOppositeBubble());
                } else {
                    chatHolder.dataView.setBackgroundResource(R.drawable.chat_opposite_bg);
                }
            }
        }

        至此,群聊头像修改方法结束。

        有任何需要讨论的问题请联系

        QQ: 88627109

        欢迎您的到来

 

 

       

 

相关文章: