2015-04-07 99 views
3

我使用畢加索庫在我的項目從服務器的URL圖像讀取到我的ImageView,但不幸的是畢加索從磁盤加載以前緩存圖像,而不是從URL加載新圖像。請找到以下代碼供您參考。畢加索圖像加載以前緩存圖像

Picasso.with (ImageActivity.this) 
        .load(url) 
        .placeholder (R.drawable.default_user) 
        .error (R.drawable.default_user) 
        .into(imgUser); 

我也試着像解決方案:

Picasso.with(ImageActivity.this).invalidate(url); 

Picasso.with (ImageActivity.this) 
          .load(url).memoryPolicy(MemoryPolicy.NO_CACHE) 
          .placeholder (R.drawable.default_user) 
          .error (R.drawable.default_user) 
          .into(imgUser); 

但沒有什麼是爲我工作。請幫助我解決我的問題。

在此先感謝。

+0

所以你要加載一個新的形象,並在緩存中沒有存儲每一次? – Fahim

回答

16

嘗試:

Picasso.with(mContext) 
     .load(URL) 
     .memoryPolicy(MemoryPolicy.NO_CACHE) 
     .networkPolicy(NetworkPolicy.NO_CACHE) 
     .error(R.drawable.xxx) 
     .into(xx); 
+0

感謝@Nikhil,第二個解決方案工作。 – Chandru

+0

當然。乾杯! –

+1

是否有解決方案的確切反例。即使有連接,我也只想從緩存中加載圖像。因爲我不想有禁用圖像加載的設置來保存數據 – Y2K

0

我知道已經有一個答案,但在嘗試了幾種方法後,我想出了一個非常簡單的方法: 檢查圖像爲空 - 如果沒有 - 然後加載圖像與畢加索樣:

if(vImage.getDrawable() == null) 
Picasso.with(context).load(URL).into(vImage); 

希望這可以幫助別人。