一行代码实现群聊头像(用环信仿微信群聊头像)

做这个环信群聊头像的时候,我在考虑怎么自定义,怎么去拼接这个群聊头像,怎么获取群成员的头像,怎么在群成员退出群聊的时候更新头像,,,

群聊的东西真的很多,最近刚刚弄完群聊头像,并没有考虑到退出的时候怎么更新,这个问题应该很简单,所以,就放在哪里去干别的事了(帮助别人解决头像昵称去了)

好了,不多说,首先我们找到群聊列表,也就是GroupActivity;然后我们就会看到GroupAdapter,然后进入Adapter,找到Item的布局


图1

这就是这个布局,很纳闷,为什么不把那个头像的id初始化出来呢?或许是因为这个头像为了用户的自定义,不写出来吧,有的人可能会自定义一个ImageView,也有人会那这个控件继承ViewGroup,而我,就是集成ViewGroup

然后,问题就来了,怎么获取到群成员的头像呢,首先一开始我们后台并没有给出接口,我自己请求了查看个人信息的接口,然后,For循环进一个ImageList,但是,这样太麻烦了;然后,我就指使我们后台写了个接口,利用群id查询所有群成员的id和头像,这样,简单多了。

因为集成ViewGroup的代码删除了,所以这里就用一位大神的例子来演示,继承ViewGroup实现群聊头像

好,那就开始写。。


图2

在这里,我们只要一个NineGridImageView就可以了,因为这位大神是写了九个这个控件,分别是显示从一张到九张


图2

关键代码在这里,这里就是Adapter,以前没接触过Adapter里面嵌套Adapter,然而,也是听说,就试了试这个,这里,这位大神用的是Picasso,在这里,我的上一篇文章已经简单讲了,Picasso和Gilde的区别,SO,我这里并没有用Picasso,Picasso和Gilde的加载代码也非常相似


图3

这里同样,我们同样只需要设置一个GroudIcon;

然后就是下面的设置,这个setImagesData里面的东西大家可以去看看NineGridImageView这个类,很神奇。。

然后运行结果就是


图4

你显示的头像就是红色框框里面的9张图片。(盗了个图,大家不要介意)

看到这里,大家是不是以为完了?,并没有,当你弄好了这个头像的时候,你就会看到,每次进入群聊界面就会刷新数据,头像就会重新加载一次,也就是会闪一次


然后我就找到了个终极解决办法,那就是找万能的后台。。。。

我们后台帮我们拼接图片,然后请求接口直接返回一张图片,这里就用到了get请求方式,用请求地址作为图片地址,然后仅仅只需要一行代码直接解决群头像的问题!!


图5

看到没有,就是一行代码,但是这个也是有缺陷的,因为,我没有写成员退出群聊之后刷新,所以,大家自己加上吧

这里的头像解决了,但是会话列表那里呢?于是,我就查到EaseUI里面去了,就是会话列表EaseConversationAdapater

这里同样,也是一行代码


图6

好了,大功告成,现在可以看到群成员的头像了


图7

如果有疑问,请加入我大表哥粉丝群环信IM互帮互助群 340452063,找我,杭州-android-中草;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容