2015-04-07 135 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); 

希望这可以帮助别人。