2015-02-07 151 views
2

我的问题是,我无法通过ID下载用户头像图片。我可以当我使用浏览器来获取用户的个人资料图片,这网址:无法通过Android下载Facebook用户头像图片

http://graph.facebook.com/janno.hindrekson/picture?type=small

我能看到这个用户的个人资料图片: enter image description here

但是,当我想通过这张图Android,我不能

// Execute the task 
    new LoadImage().execute("http://graph.facebook.com/janno.hindrekson/picture?type=small"); 


} 

private class LoadImage extends AsyncTask<String, String, Bitmap> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(TESTPROFILEPICT.this); 
     pDialog.setMessage("Loading Image ...."); 
     pDialog.show(); 
    } 

    protected Bitmap doInBackground(String... args) { 
     try { 
      bitmap = BitmapFactory.decodeStream((InputStream) new URL(args[0]).getContent()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return bitmap; 
    } 

    protected void onPostExecute(Bitmap image) { 
     if (image != null) { 
      fbUserAvatar.setImageBitmap(image); 
      pDialog.dismiss(); 
     } else { 
      pDialog.dismiss(); 
      Toast.makeText(TESTPROFILEPICT.this, "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

那么有什么想法?我应该如何通过Android下载个人资料照片?

感谢, 凯文

回答

1

我也有这个问题。尝试用相应的facebookId替换名称。

new LoadImage().execute("http://graph.facebook.com/100001997422983/picture?type=small"); 

编辑

我认识到了这个问题被问了几次上计算器。

无论如何,原因是,Facebook重定向该网址。因此你必须调用重定向的url。 这是一个很好的例子:

http://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/

或者你必须使用Facebook的API: https://developers.facebook.com/docs/graph-api/reference/user/picture/

我选择了重定向消息的方法,因为它的通用性,可以从所有获取的图像通过互联网。