这是我正在使用的代码。
String imageURL;
Bitmap bitmap = null;
imageURL = "http://graph.facebook.com/" + fbID + "/picture?type=";
try {
bitmap = BitmapFactory.decodeStream((InputStream) new URL(imageURL)
.getContent());
} catch (Exception e) {
e.printStackTrace();
}
当我在浏览器中使用此URL时,它显示图像,但是当尝试在位图中获取它时,它会给出null。
我检查了很多问题,但没有任何帮助我。
答案 0 :(得分:5)
此代码适用于HTTPGet:
HttpGet httpRequest = new HttpGet(URI.create(linkUrl) );
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
bmap = BitmapFactory.decodeStream(bufHttpEntity.getContent());
httpRequest.abort();
答案 1 :(得分:1)
这个问题是由于Facebook将图形API网址仅用作重定向端点。如果您复制粘贴facebook个人资料图片网址,例如
http://graph.facebook.com/subinsebastien/picture
实际发生的是,Facebook会将您重定向到实际的图片网址。因此,当您尝试使用图形API网址打开输入流时,您实际上不会获得位图,而是获得重定向响应。就我而言,这是我被重定向到的地方。
https://scontent-b.xx.fbcdn.net/hprofile-prn1/l/t5.0-1/48771_100000333400619_475851971_q.jpg
因此,我建议您先使用实际的HTTPGet来获取位图。