2013-03-30 156 views
2

我使用Facebook API的圖形API Json響應牆貼圖像和顯示在我的APP中,我成功地獲得了它。但牆壁圖像看起來非常模糊如何解決?我使用此代碼獲取牆圖片如何從FaceBook中獲取清晰的圖像

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

回答

2

Facebook Graph API以及FQL數據集總是返回縮略圖的圖片網址。如果你看看它返回的URL,它將會有一個結尾(就在圖像擴展名.jpg,.png等之前)_t。_a。。例如,如果URL是一個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。這些通常來自其他網站用戶共享的帖子。