关于融云头像问题

笔记

只实现一个单聊功能。然后头像在会话列表中显示。这个弄得我太痛苦了。挺简单的,但是我弄了好久好久。

在连接融云token值后要implement融云的这个接口RongIM.UserInfoProvider,然后会有一个方法出来,叫你重载。这段重载的理解错了很久很久,在这个卡了好几天。一开始以为是只要自己的头像就可以了,以为自己提供融云的uri,融云会自己显示出来,又被一篇文章误导说不能用局域网中的地址,以为一定是融云可以访问到的地址,然后融云动态加载这个头像,泪。。。。融云只会显示你的id名,显示头像和用户名是从你的数据库中或者是从你的服务端获取的。在每次需要头像的时候就会去调用这个getUserinfo,传递arg0到,通过遍历获取的你头像信息。然后在代码中显示出来。大致是这个意思。

@Override
            public UserInfo getUserInfo(String arg0) {

                for (liuyan it : list) {
                    //Toast.makeText(getApplicationContext(), "changdu"+userIdList.size(), Toast.LENGTH_SHORT).show();
                    if ((it.getId()).equals(arg0)) {
                        //Log.e(TAG, i.getPortraitUri());
                        uir=Uri.parse(httpurl.server+"/photoDoctor/"+it.getImage());
                        return new UserInfo(it.getId(),it.getUsername(), uir);
                    }
                }
                Log.e("MainActivity","UserId is :" +arg0 );
                return null;
            }


在连接完融云后,写上这个RongIM.setUserInfoProvider(this, false); 用户信息提供者 实现成功以后 在你的 会话界面 和 会话列表 头像和昵称 是会有正确展现的

有一点莫名奇妙的是,我是用json解析的,先从数据服务端获取相关信息,在全局变量中附上我所有用户的头像及用户和id,然后在调用getUserInfo方法时,发现所有的值只变成了一个一模一样,超级奇怪,但是在另一端做测试,他所有的值是可以显示出来的,然后跟同学讨论,可能原因是没有加吧融云的uri值传上去,调用的时候可能是这方面出现了问题。




贴上融云的地址http://support.rongcloud.cn/kb/MjQ4


更新,是应该是异步的原因,异步还没有加载完相关信息,就进行调用了,所以所有的数值都是一样的,我个人的解决方法是,在本地sqlite数据库先将异步的信息存储好,之后再进行头像的调用,速度快一点。悲伤,没有好好看文档啊!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值