做這個(gè)環(huán)信群聊頭像的時(shí)候藤肢,我在考慮怎么自定義,怎么去拼接這個(gè)群聊頭像糯景,怎么獲取群成員的頭像嘁圈,怎么在群成員退出群聊的時(shí)候更新頭像,蟀淮,最住,
群聊的東西真的很多,最近剛剛弄完群聊頭像怠惶,并沒有考慮到退出的時(shí)候怎么更新涨缚,這個(gè)問題應(yīng)該很簡單,所以策治,就放在哪里去干別的事了(幫助別人解決頭像昵稱去了)
好了脓魏,不多說兰吟,首先我們找到群聊列表,也就是GroupActivity茂翔;然后我們就會(huì)看到GroupAdapter揽祥,然后進(jìn)入Adapter,找到Item的布局
這就是這個(gè)布局檩电,很納悶拄丰,為什么不把那個(gè)頭像的id初始化出來呢?或許是因?yàn)檫@個(gè)頭像為了用戶的自定義俐末,不寫出來吧料按,有的人可能會(huì)自定義一個(gè)ImageView,也有人會(huì)那這個(gè)控件繼承ViewGroup卓箫,而我载矿,就是集成ViewGroup
然后,問題就來了烹卒,怎么獲取到群成員的頭像呢闷盔,首先一開始我們后臺(tái)并沒有給出接口,我自己請(qǐng)求了查看個(gè)人信息的接口旅急,然后逢勾,F(xiàn)or循環(huán)進(jìn)一個(gè)ImageList,但是藐吮,這樣太麻煩了溺拱;然后,我就指使我們后臺(tái)寫了個(gè)接口谣辞,利用群id查詢所有群成員的id和頭像迫摔,這樣,簡單多了泥从。
因?yàn)榧蒝iewGroup的代碼刪除了句占,所以這里就用一位大神的例子來演示,繼承ViewGroup實(shí)現(xiàn)群聊頭像
好躯嫉,那就開始寫纱烘。。
在這里和敬,我們只要一個(gè)NineGridImageView就可以了凹炸,因?yàn)檫@位大神是寫了九個(gè)這個(gè)控件,分別是顯示從一張到九張
關(guān)鍵代碼在這里昼弟,這里就是Adapter啤它,以前沒接觸過Adapter里面嵌套Adapter,然而,也是聽說变骡,就試了試這個(gè)赏半,這里兵多,這位大神用的是Picasso,在這里,我的上一篇文章已經(jīng)簡單講了统台,Picasso和Gilde的區(qū)別,SO熊昌,我這里并沒有用Picasso础锐,Picasso和Gilde的加載代碼也非常相似
這里同樣拘荡,我們同樣只需要設(shè)置一個(gè)GroudIcon;
然后就是下面的設(shè)置接剩,這個(gè)setImagesData里面的東西大家可以去看看NineGridImageView這個(gè)類切厘,很神奇。懊缺。
然后運(yùn)行結(jié)果就是
你顯示的頭像就是紅色框框里面的9張圖片疫稿。(盜了個(gè)圖,大家不要介意)
看到這里鹃两,大家是不是以為完了遗座?,并沒有俊扳,當(dāng)你弄好了這個(gè)頭像的時(shí)候途蒋,你就會(huì)看到,每次進(jìn)入群聊界面就會(huì)刷新數(shù)據(jù)拣度,頭像就會(huì)重新加載一次碎绎,也就是會(huì)閃一次
然后我就找到了個(gè)終極解決辦法,那就是找萬能的后臺(tái)抗果。。奸晴。冤馏。
我們后臺(tái)幫我們拼接圖片,然后請(qǐng)求接口直接返回一張圖片寄啼,這里就用到了get請(qǐng)求方式逮光,用請(qǐng)求地址作為圖片地址,然后僅僅只需要一行代碼直接解決群頭像的問題6栈涕刚!
看到?jīng)]有,就是一行代碼乙帮,但是這個(gè)也是有缺陷的杜漠,因?yàn)椋覜]有寫成員退出群聊之后刷新,所以驾茴,大家自己加上吧
這里的頭像解決了盼樟,但是會(huì)話列表那里呢?于是锈至,我就查到EaseUI里面去了晨缴,就是會(huì)話列表EaseConversationAdapater
這里同樣,也是一行代碼
好了峡捡,大功告成击碗,現(xiàn)在可以看到群成員的頭像了
如果有疑問,請(qǐng)加入我大表哥粉絲群環(huán)信IM互幫互助群 340452063们拙,找我稍途,杭州-android-中草;