Bmob与环信的联合使用--头像昵称的显示

       趁着2016年的最后一天,来写篇博客吧。最近结合Bmob与环信的学习,在一些实例的基础上完成了一个APP--悠贴,感兴趣的可以下载体验一下,做的比较糙。

这篇博文里用的是老版的环信SDK,最新的Bmob SDK,主要来简单讲讲头像与昵称的显示,其实主要是解决头像的显示问题。

那么如何快速实现头像显示呢?

首先,最基础的是实现用户注册,用户信息同时添加进环信与Bmob的后端服务器,这里不具体展开,有时间再来说明了。用户信息可以从这两个后端获取,这里将用户的头像图片信息存在了Bmob,然后在使用环信的即时通讯时引用Bmob里存储的相应用户的头像。具体效果如下:


实现过程很简单,只要在环信Demo的UserUtils.java里的setUserAvatar(Context context, String username, ImageView imageView)方法里添加如下代码:

 final User user = getUserInfo(username);//
        User users =new User();
        final Context ct=context;
        final String um=username;
        final ImageView im=imageView;
         BmobQuery<User> query1 = new BmobQuery<User>();
          query1.findObjects(context, new FindListener<User>() {


@Override
public void onError(int code, String msg) {
// TODO Auto-generated method stub
 // TODO Auto-generated method stub
Log.i("查询失败:",msg);
}


@Override
public void onSuccess(List<User> object) {
// TODO Auto-generated method stub
Log.i("查询成功:共",object.size()+"条数据。");
int j=object.size();
System.out.print(j+"\n"); 
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();  
int i=0;
int k=0;
HashMap<String, Object> map = new HashMap<String, Object>();
 
for (User qiangyu:object) {
  
              if(qiangyu.getUsername() != null ){
                                 //文件名称
                               //qiangyu.getContentfigureurl().getFilename();
             
              map.put(qiangyu.getAvatar(),qiangyu.getUsername());
             
i++;
             data.add(map);
              
           }               
       } 
Set<String> set = map.keySet();
 Iterator<String> it = set.iterator();
 String[][] ss = new String[map.size()][2];
 for (i = 0; i < map.size(); i++) {
  ss[i][0] = it.next();
  ss[i][1] = (String) map.get(ss[i][0]); 
  System.out.print(ss[i][1]+"\n");
 }
 
 System.out.println(ss.length);
 String [] urls = new String[(ss.length)*2];
String [] content= new String[(ss.length)*2];
       for ( i = 0; i < ss.length; i++) {
           for ( j = 0; j < ss[i].length; j++) {
               urls[i+j] = ss[i][j+1];                                  
               System.out.println(urls[i+j]);                        
               j++;
           }
          content[i]=ss[i][0];
        // System.out.println(content[i]);
       }

        if(user != null){
        for(i = 0; i < urls.length; i++){//MyApplication.getInstance().getCurrentUser().getUsername()
        if(um.equals(urls[i].toLowerCase())){//字符串全以小写输出。
        String avatarUrl = null;
        if( content[i]!=null){
        avatarUrl =  content[i];//MyApplication.getInstance().getCurrentUser().getAvatar();
        }      
        ImageLoader.getInstance()
        .displayImage(avatarUrl, im, 
        MyApplication.getInstance().getOptions(R.drawable.user_icon_default_main),
        new SimpleImageLoadingListener(){


        @Override
        public void onLoadingComplete(String imageUri, View view,
        Bitmap loadedImage) {
        // TODO Auto-generated method stub
        super.onLoadingComplete(imageUri, view, loadedImage);
        }
        
        });
        break;
        //Picasso.with(context).load(user.getAvatar()).placeholder(R.drawable.default_avatar).into(imageView);
        }else{
        Picasso.with(ct).load(user.getAvatar()).placeholder(R.drawable.default_avatar).into(im);
        }
        
        } //placeholder(R.drawable.default_avatar)
        }else{
            Picasso.with(ct).load(R.drawable.default_avatar).into(im);
        }
}
          });

具体说明:就是在Bmob后端里查询用户有关头像的信息(url),当环信里的用户名与Bmob中的用户名相一致,则显示头像,用ImageLoader.getInstance().displayImage()方法即可。

聊天界面效果如下:


这里只是做个简单的说明,具体的下次有时间展开介绍,谢谢支持~!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值