15

我正在使用 facebook SDK 3.0 我必须获取用户登录的个人资料图片。这是我使用的代码:

URL image_value = new URL("http://graph.facebook.com/"+id+"/picture" );
profPict=BitmapFactory.decodeStream(image_value.openConnection().getInputStream());

但我没有得到想要的结果。

4

8 回答 8

24

你应该改变你的代码如下:

URL image_value = new URL("http://graph.facebook.com/"+id+"/picture" );

可以在此处找到 URL 的可能 GET 参数: https ://developers.facebook.com/docs/graph-api/reference/user/picture/

于 2013-07-22T18:23:00.867 回答
16

使用https://而不是http:// 我遇到了同样的问题。

URL image_value = new URL("https://graph.facebook.com/"+id+"/picture" );
profPict = BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
于 2014-04-07T10:20:11.623 回答
12

如果您尝试在您的应用中显示个人资料图片,请使用ProfilePictureViewFacebook SDK。

参考这个

就叫setProfileId(String profileId)吧。

它将负责显示图像。

于 2013-05-04T12:30:41.943 回答
6
String id = user.getId();
try {
  URL url = new URL("http://graph.facebook.com/"+ id+ "/picture?type=large");
  String image_path = uri.toString();
  System.out.println("image::> " + image_path);
}
catch (MalformedURLException e) {
  e.printStackTrace();
}
于 2014-06-19T12:10:18.107 回答
5

ProfilePictureView从 facebook sdk使用。

于 2013-09-02T05:39:37.277 回答
2

您可以在线程中执行以下操作:

String url = "http://graph.facebook.com/"+id+"/picture";
HttpConnection conn = new HttpConnection(url);
conn.openConnection();

Drawable d = Drawable.createFromStream(new BufferedInputStream(conn.getInputStream()), "image");

conn.close();

我希望它对你有帮助。

于 2013-05-17T15:55:18.890 回答
2

试试这个..

 try {
        imageURL = new URL("https://graph.facebook.com/" +
                                                id+ "/picture?type=large");
        Log.e("URL", imageURL.toString());
        } catch (MalformedURLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
             try {
                    bitmap = BitmapFactory.decodeStream(imageURL
                                .openConnection().getInputStream());
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

      ProfileDp.setImageBitmap(bitmap);
于 2015-08-18T05:40:00.957 回答
0

将您的 Facebook 帐户登录到应用程序后,只需执行以下操作:

String url = Profile.getCurrentProfile().getProfilePictureUri(x, y).toString();

x 和 y 是宽度和高度。

请参阅文档:https ://developers.facebook.com/docs/reference/android/current/class/Profile/

于 2016-05-25T14:13:15.900 回答