2014-05-21 173 views
2

我使用Parse作为后端,即时通讯设法获取用户个人资料图片并显示它。我不想使用ProfilePictureView,因为即时通讯使用显示其他图像视图的gridview。你可以看到我也在使用gravater api。使用picasso获取用户的facebook个人资料图片

所以问题是:它不会显示配置文件图片,只有占位符图片(gravatar工作正常并显示),我做错了什么?

ParseUser user = mUsers.get(position); 
      String email; 
      if (user.getEmail() == null) { // this is how i check if its a facebook 
              // user 

       ParseUser currentUser = user; 
       if (currentUser.get(ParseConstants.KEY_FACEBOOK_DETAILS) != null) { 
        JSONObject userProfile = currentUser 
          .getJSONObject(ParseConstants.KEY_FACEBOOK_DETAILS); 
        try { 
         if (userProfile.getString("facebookId") != null) { 
          String facebookId = userProfile.get("facebookId") 
            .toString(); 
          String facebookName = userProfile.getString("name"); 
          holder.nameLabel.setText(facebookName); 
          // holder.userImageView.setProfileId(facebookId); 
          String facebookProfilePicUrl = "http://graph.facebook.com/" 
            + facebookId + "/picture"; 

          Picasso.with(mContext).load(facebookProfilePicUrl) 
            .placeholder(R.drawable.avatar_empty) 
            .into(holder.userImageView); 
         } 
        } catch (JSONException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

       } 
      } else { 

       email = user.getEmail().toLowerCase(Locale.getDefault()); 
       if (email.equals("")) { 
        holder.userImageView.setImageResource(R.drawable.avatar_empty); 
       } else { 
        String hash = MD5Util.md5Hex(email); 
        String gravatarUrl = "http://www.gravatar.com/avatar/" + hash 
          + "?s=204&d=404"; 
        Picasso.with(mContext).load(gravatarUrl) 
          .placeholder(R.drawable.avatar_empty) 
          .into(holder.userImageView); 
       } 
       holder.nameLabel.setText(user.getUsername()); 
      } 

      GridView gridView = (GridView) parent; 
      if (gridView.isItemChecked(position)) { 
       holder.checkImageView.setVisibility(View.VISIBLE); 
      } else { 
       holder.checkImageView.setVisibility(View.INVISIBLE); 
      } 

      return convertView; 

回答

19

从http更改为https。解决了它。

+0

这个求解器对我来说也是! – aletede91

相关问题