Android實(shí)現(xiàn)環(huán)信修改頭像和昵稱
一、概述
最近在處理環(huán)信聊天時(shí),需要修改聊天頁面的用戶昵稱和頭像,在網(wǎng)上搜索解決方案,發(fā)現(xiàn)沒有合適,要么看不懂,要么代碼太復(fù)雜,沒辦法,只能發(fā)揮自己的聰明才智動(dòng)手解決了。
項(xiàng)目里的環(huán)信是基于V3.x的,項(xiàng)目里的聊天包括單聊和群組聊天,所以要同時(shí)兼顧這兩種模式。
二、解決方法
1.首先我們?cè)趀asyui庫里添加兩個(gè)類:
package com.hyphenate.easeui.model;
/**
?* author: chenzheng
?* created on: 2017/7/26 17:11
?* description:
?*/
public class EaseMember {
? ? public String member_hxid;
? ? public String member_headphoto;
? ? public String member_nickname;
}package com.hyphenate.easeui.utils;
import com.hyphenate.easeui.model.EaseMember;
import java.util.ArrayList;
import java.util.List;
/**
?* author: chenzheng
?* created on: 2017/7/26 17:04
?* description:
?*/
public class EaseGlobal {
? ? public static List<EaseMember> memberList = new ArrayList<>();
}2.環(huán)信自己也說了環(huán)信不保存項(xiàng)目的用戶信息,所以這里我們需要在自己的項(xiàng)目里處理。
如果是一對(duì)一聊天,我們就獲取好友列表(網(wǎng)絡(luò)請(qǐng)求),并賦值:
List<EaseMember> memberList = new ArrayList<>();
? ? ? ? ? for(HxContact hc : contactList){
? ? ? ? ? ? ? ? EaseMember em = new EaseMember();
? ? ? ? ? ? ? ? ? em.member_hxid = hc.username;
? ? ? ? ? ? ? ? ? em.member_headphoto = Api.IMAGE_DOMAIN_URL+hc.headPhoto;
? ? ? ? ? ? ? ? ? em.member_nickname = hc.name;
? ? ? ? ? ? ? ? memberList.add(em);
? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? //添加自己的頭像和昵稱信息
? ? ? ? ? ? ? ? ? ? EaseMember em2 = new EaseMember();
? ? ? ? ? ? ? ? ? ? em2.member_hxid = Global.userData.user.hxUserName;
? ? ? ? ? ? ? ? ? ? em2.member_headphoto = Api.IMAGE_DOMAIN_URL+Global.userData.user.headPhoto;
? ? ? ? ? ? ? ? ? ? em2.member_nickname = Global.userData.user.loginName;
? ? ? ? ? ? ? ? ? ? memberList.add(em2);
? ? ? ? ? ? ? ? ? ? EaseGlobal.memberList = memberList;如果是群組聊天,我們就獲取該群組的成員列表(網(wǎng)絡(luò)請(qǐng)求),并賦值:
List<EaseMember> memberList = new ArrayList<>();
? ? ? ? ? for(TeamMember tm : groupMemberList){
? ? ? ? ? ? ? ? ? EaseMember em = new EaseMember();
? ? ? ? ? ? ? ? ? ? em.member_hxid = tm.chatUsername;
? ? ? ? ? ? ? ? ? ? em.member_headphoto = Api.IMAGE_DOMAIN_URL+tm.headPhoto;
? ? ? ? ? ? ? ? ? ? em.member_nickname = tm.mgName;
? ? ? ? ? ? ? ? ? ? ?memberList.add(em);
? ? ? ? ? ? ?}
? ? ? ? //添加自己的頭像和昵稱信息
? ?EaseMember em2 = new EaseMember();
? ?em2.member_hxid = Global.userData.user.hxUserName;
? ?em2.member_headphoto = Api.IMAGE_DOMAIN_URL+Global.userData.user.headPhoto;
? ?em2.member_nickname = Global.userData.user.loginName;
? ?memberList.add(em2);
EaseGlobal.memberList = memberList;3.最后一步,離成功一步之遙啦!找到EaseChatRow類,在setUpBaseView()方法中將

修改成:
//set nickname and avatar
? ? ? ? if(EaseGlobal.memberList.size()>0){
? ? ? ? ? ? if (message.direct() == Direct.SEND) {
? ? ? ? ? ? ? ? for(EaseMember em : EaseGlobal.memberList){
? ? ? ? ? ? ? ? ? ? if(em.member_hxid.equals(EMClient.getInstance().getCurrentUser())){
? ? ? ? ? ? ? ? ? ? ? ? Glide.with(context).load(em.member_headphoto).into(userAvatarView);
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? for(EaseMember em : EaseGlobal.memberList){
? ? ? ? ? ? ? ? ? ? if(em.member_hxid.equals(message.getFrom())){
? ? ? ? ? ? ? ? ? ? ? ? Glide.with(context).load(em.member_headphoto).into(userAvatarView);
? ? ? ? ? ? ? ? ? ? ? ? usernickView.setText(em.member_nickname);
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }else {
? ? ? ? ? ? if (message.direct() == Direct.SEND) {
? ? ? ? ? ? ? ? EaseUserUtils.setUserAvatar(context, EMClient.getInstance().getCurrentUser(), userAvatarView);
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? EaseUserUtils.setUserAvatar(context, message.getFrom(), userAvatarView);
? ? ? ? ? ? ? ? EaseUserUtils.setUserNick(message.getFrom(), usernickView);
? ? ? ? ? ? }
? ? ? ? }三、總結(jié)
這種解決方法我認(rèn)為非常的棒,有木有,擴(kuò)張性高,對(duì)任意項(xiàng)目都適用,而且,不會(huì)影響原有功能!
今天的分享就到這里,感謝閱讀!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android bitmap compress(圖片壓縮)代碼
android bitmap compress(圖片壓縮)代碼,需要的朋友可以參考一下2013-06-06
Android?換膚實(shí)現(xiàn)指南demo及案例解析
這篇文章主要為大家介紹了Android換膚指南demo及案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Android編程設(shè)計(jì)模式之模板方法模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之模板方法模式,結(jié)合實(shí)例形式詳細(xì)分析了Android模板方法模式的概念、功能、使用場(chǎng)景、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-12-12
Android調(diào)用系統(tǒng)自帶的分享功能實(shí)例代碼
本篇文章主要介紹了Android調(diào)用系統(tǒng)自帶的分享功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
Android自定義View實(shí)現(xiàn)仿GitHub的提交活躍表格
這篇文章主要介紹了Android自定義View實(shí)現(xiàn)仿GitHub的提交活躍表格,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-01-01

