如何从FaceBook获取清晰的图像

时间:2013-03-30 07:06:27

标签: android android-facebook

我使用了Facebook Wall Post Images的图形API Json Response并在我的APP中显示我成功得到了它。但墙上的图像看起来非常模糊如何解决?我使用此代码获取墙图片

URL url=new URL(hashMap.get("picture_url"));
bitmap=BitmapFactory.decodeStream(url.openConnection().getInputStream());
((ImageView)view.findViewById(R.id.imageView_FullImage)).setImageBitmap(bitmap)

1 个答案:

答案 0 :(得分:2)

Facebook Graph API以及FQL数据集始终返回缩略图的图片URL。如果你查看它返回的网址,它会有一个结尾(在图片扩展名.jpg,.png等之前) _t。 _a。。例如,如果网址是JPG文件,则其结尾可能为 _t.jpg

想法是交换结尾,并为返回的图像选择正常大小。要执行此操作,请使用下面的代码替换正常大小的图像(应该具有 _n。

的结尾

顺便说一下,我认为你要找的标签不是 picture_url 。它应该只是图片。但无论如何,请获取如下所示的源URL,替换结尾,然后将其传递给代码中的此行:

// THIS SHOULD BE AFTER THE if....else code block
bitmap=BitmapFactory.decodeStream(url.openConnection().getInputStream());

替换各种缩略图的代码:顺便说一下,这是生产代码并且运作完美。

String PICTURE_URL;
String getPicture = JOFeeds.getString("picture");

if (getPicture.contains("_t.")) {
    PICTURE_URL = getPicture.replaceAll("_t.", "_n.");
} else if (getPicture.contains("_a.")) {
    PICTURE_URL = getPicture.replaceAll("_a.", "_n.");
} else if (getPicture.contains("_s.")) {
    PICTURE_URL = getPicture.replaceAll("_s.", "_n.");
} else if (getPicture.contains("_q.")) {
    PICTURE_URL = getPicture.replaceAll("_q.", "_n.");
}

注意:但是,在某些情况下,如视频预览或链接预览,它并不总是有更大的图像可用。没什么可以做的,我也不怀疑Facebook。这些通常来自其他网站用户共享的帖子。