2017-03-20 74 views
0

我正在使用Picasso用於圖像下載並在imageView中顯示它的庫。該庫還將圖像存儲在緩存和內存中。當我的互聯網打開時,我能夠在imageView上查看圖像。所以我認爲,它也應該存儲在緩存或文件內存中。現在我的網絡正在關閉,但它不會顯示圖像。請好好看看。使用Picasso Library無法從緩存中顯示圖像

Picasso.with(context) 
    .load(url) .placeholder(R.drawable.defaultimg) 
    .networkPolicy(NetworkPolicy.OFFLINE) 
    .into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) { 
    @Override 
    public void onSuccess() { 
     if (holder.loadingBar != null) { 
      holder.loadingBar.setVisibility(View.GONE); 
     } 
    } 
    @Override 
    public void onError(){ 
     holder.loadingBar.setVisibility(View.VISIBLE); 
     Picasso.with(context) 
      .load(url) .placeholder(R.drawable.defaultimg) 
      .into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) { 

      @Override 
      public void onSuccess() { 
       if (holder.loadingBar != null) { 
        holder.loadingBar.setVisibility(View.GONE); 
       } 
      } 

      @Override 
      public void onError() { 
       if (holder.loadingBar != null) { 
        holder.loadingBar.setVisibility(View.GONE); 
       } 
      } 
     }); 
    } 
}); 
+0

當您的互聯網** OFF **時,無論圖像是否被緩存,源代碼都會被更正爲該庫,所以它會拋出異常並且不顯示緩存的圖像。在互聯網關閉時下載圖像並提供本地路徑,或者在沒有互聯網的情況下提供適當的佔位符圖像。 –

+0

@MohammedAtif我不認爲是這樣。 [傑克在這裏的畢加索問題跟蹤器中解決了這個問題。](https://github.com/square/picasso/issues/698#issuecomment-58745858) –

+0

@Mohammed Atif我的應用程序使用畢加索緩存圖像,甚至顯示他們當互聯網關閉時。 –

回答

0

最後我解決了這個問題。謝謝@ dev.bmax

圖片網址不正確。在Picasso中有錯誤。如果我們有像URL作爲

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg?500|700

畢加索是能夠顯示圖像時,互聯網打開 但如果我們TURN OFF到互聯網,它不解碼的URL。也不顯示圖像。

我們必須刪除?500 | 700然後我才能在OFFLine模式下查看圖像。 //url.substring(0,url.indexOf( 「?」))

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg

謝謝!

相關問題