我的问题是,我无法通过 ID 下载用户个人资料图片。当我使用浏览器和这个 URL 时,我能够获取用户个人资料图片:
http://graph.facebook.com/janno.hindrekson/picture?type=small
我可以看到这个用户的个人资料图片:
但是当我想通过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 下载个人资料图片?
谢谢, 凯文
最佳答案
我也有这个问题。尝试用相应的 facebookId 替换名称。
new LoadImage().execute("http://graph.facebook.com/100001997422983/picture?type=small");
编辑
我知道这个问题在 stackoverflow 上被问过好几次。
无论如何,原因是 facebook 重定向了该 url。因此,您必须调用重定向的 url。 这是一个很好的例子:
http://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/
或者您必须使用 Facebook API: https://developers.facebook.com/docs/graph-api/reference/user/picture/
我选择了redirect-method,因为它是通用的,你可以从整个互联网上获取图片。
关于android - 无法通过 Android 下载 Facebook 用户个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383481/