如何在凌空中加载Facebook图像网址

时间:2015-09-17 12:28:09

标签: android facebook android-volley

我试图在凌空图像加载器中从图形api加载Facbeook url图像。 起初有一个错误响应返回给我302和301重定向网址我检查镜像库的凌空并在gradle文件中编译它但现在错误响应是400我不知道是什么导致这里是我的代码:

enter code here
 try {
      URL picture = new URL("https://graph.facebook.com/v2.4/" + fb_ID + "/picture?type=large);
      fb_Picture = picture.toString();
     } catch (MalformedURLException e)
      {
        e.printStackTrace();
      }
       //Loading the image
        ImageLoader imageLoader = AppController.getInstance().getImageLoader();
        imageLoader.get("https://graph.facebook.com/v2.4/" + fb_ID + "/picture?type=large", new ImageLoader.ImageListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("ResponseImage", "Image Load Error: " + error.getMessage());
            }

            @Override
            public void onResponse(ImageLoader.ImageContainer response, boolean arg1) {
                if (response.getBitmap() != null) {
                    // load image into imageview
                    userImage.setOval(true);
                    userImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    userImage.setImageBitmap(response.getBitmap());
                }
            }
        });

如何在没有此网址的情况下获取实际网址图片,或者我如何在排球中加载此网址任何帮助将不胜感激谢谢。

2 个答案:

答案 0 :(得分:0)

如果您在应用中执行此操作,则需要使用访问令牌来获取https://graph.facebook.com/v2.4/<FBID>/picture?type=large。这将返回一个类似于这个的JSON对象:

{
  "data": {
    "is_silhouette": false,
    "url": "https://fb.com/..."
  }
}

解析后,此JSON对象的data.url成员可用于在您的应用中创建图像视图对象。您可以阅读有关此Graph API边缘here的完整文档。您可以阅读有关Using Graph API here的更多信息。

答案 1 :(得分:0)

如果您只是加载facebook sdk提供的单个个人资料图片uri,您只需使用 Asynctask 并调用 BitmapFactory.decodeStream 即可将图像下载到Imageview中。排球问题是由于共享的安全原因,它无法自动处理https图像,您必须手动创建一个带有HurlStack和SSL的自定义排球请求,以便显示图像。