2015-04-06 74 views
0

Iam在我的JSON中獲取一些圖像URL,我解析並顯示在圖像視圖中。所以如果Url爲空,我會顯示一個默認圖片。但在某些情況下,指定了Url但圖像已損壞。在這種情況下,ImageView中只顯示一個空白區域。有什麼辦法可以處理這種情況。在Android中處理來自JSON的損壞​​圖像

任何幫助將是有用的。

+0

如果圖像已損壞,則圖像大小是零? – Signare 2015-04-06 09:28:51

+0

捕獲圖像的HTTP下載或從流創建位圖的任何例外,並改爲顯示默認圖像。 – 2015-04-06 09:31:13

+0

@Signare。我得到一個狀態代碼確定。但是,每次您獲得狀態後,都會收到一個空的回覆 – user3034944 2015-04-06 09:38:52

回答

0

使用畢加索兄弟

一個非常簡單的圖像處理庫爲Android

畢加索同時支持下載和錯誤的佔位符作爲可選功能。

Picasso.with(context) 
    .load(url) 
    .placeholder(R.drawable.user_placeholder) 
    .error(R.drawable.user_placeholder_error) 
    .into(imageView); 

http://square.github.io/picasso/

,是的,它那麼容易

0

輕鬆地做到這一點,最好的辦法是使用適當的LIB - 使用picassoUIL或別的東西。優點是這個庫很好的維護和穩定。您的空圖像將被視爲錯誤,並將顯示默認值

1

您可以使用ImageLoader來檢查此情況。例如:

private ImageLoader imageLoader = new ImageLoader(); 
private ImageView Iv; 
private String URL =null; 
private DisplayImageOptions mDio; 

URL = "URL you get from your JSON"; 

    if (URL != null) { 
      imageLoader.displayImage(URL, Iv, mDio, new SimpleImageLoadingListener() { 
         @Override 
         public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
         // check corrupt images on here 
          view.setImageResource(R.drawable.iv_fail) 
         } 

         @Override 
         public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
          if (loadedImage != null) { 
           view.setImageBitmap(loadedImage); 
          } 
         } 
        }, new ImageLoadingProgressListener() { 
         @Override 
         public void onProgressUpdate(String imageUri, View view, int current, 
                int total) { 
         } 
        }); 
     } else Iv.setImageResource(R.drawable.iv_default); 

希望這有助於