美文网首页iOS安卓常用框架及依赖库
一行代码实现群聊头像(用环信仿微信群聊头像)

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

作者: 陈日明 | 来源:发表于2016-07-19 20:27 被阅读4299次

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

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

    好了,不多说,首先我们找到群聊列表,也就是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-中草;

    相关文章

      网友评论

      本文标题:一行代码实现群聊头像(用环信仿微信群聊头像)

      本文链接:https://www.haomeiwen.com/subject/opzmjttx.html