Android Studio 环信IM聊天设置用户头像

本文介绍如何在环信即时通讯(IM)中自定义聊天头像,通过实现EaseUserProfileProvider接口并封装用户信息,实现在登录时设置用户头像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环信IM中的DemoHelper提供了实现设置聊天头像的方法,但是我们有时候不希望按照demo的基础进行开发,或者把整个demo作为依赖导入主项目中。其实在easeui中提供了一个EaseUserProfileProvider接口,该接口就是获取我们用户信息的,我们要做的就是实现该接口,并且进行设置用户的封装,并在程序中调用就可以达到设置、修改聊天头像的目的,实现该接口如下。

public class MyUserProvider implements EaseUI.EaseUserProfileProvider{

    //单例类
    private static MyUserProvider myUserProvider;

    private Map<String,EaseUser> userList = new HashMap<>();

    private String ImgUrl="";//头像(需要从服务器获取)

    @Override
    public EaseUser getUser(String username) {
        if(userList.containsKey(username))
            //有就返归这个对象。。
            return userList.get(username);
        System.out.println("error : 没有 数据" + username);
        return null;
    }


    //进行封装
    public void setUser(String username,String nickname,String imageUrl){
        if(!userList.containsKey(username)) {
            EaseUser easeUser = new EaseUser(username);
            userList.put(username,easeUser);
        }

        EaseUser easeUser = getUser(username);
        // 环信的easerUser的父类有一个setNickname 的方法可以用来设置昵称,直接调用就好。。
        easeUser.setNickname(nickname);
        // 同理,设置一个图像的url就好,因为他加载头像是使用glide加载的
        easeUser.setAvatar(imageUrl);
    }

    // 获取单例子
    public static MyUserProvider getInstance() {
        if (myUserProvider == null) {
            myUserProvider = new MyUserProvider();
        }
        return myUserProvider;
    }

    public static void Uninit(){
        myUserProvider = null;
    }
}

说明下setUser的参数,username环信用户名(唯一)、nickname(昵称,用户之间昵称可以相同)、imageUrl(图片URL)

实现类开发完毕,接着需要进行调用,在调用方法前,必须进行环信的初始化,以及在环信初始化后加上以下代码来进行Provider的注册。

EaseUI.getInstance().setUserProfileProvider(MyUserProvider.getInstance());

接着就可以进行调用了,比如说我是在登录页面逻辑调用的,我的服务器返回了环信用户名、昵称、头像url,我把数据存放在android中的SharedPreferences中接着我的调用代码如下。

MyUserProvider.getInstance().setUser(getSharedPreferences("identify", Context.MODE_PRIVATE).getString("jgyh001",null),getSharedPreferences("identify", Context.MODE_PRIVATE).getString("yhmc001",null),getSharedPreferences("identify", Context.MODE_PRIVATE).getString("ImHeadImage",null));

 

 


 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值