尝试使用Facebook ID获取Facebook图像时获取空位图

时间:2014-03-27 07:46:48

标签: android facebook bitmap

这是我正在使用的代码。

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。

我检查了很多问题,但没有任何帮助我。

2 个答案:

答案 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来获取位图。