2015-10-05 98 views
2

我使用毕加索在Android应用程序加载图像从网址,但我看到图像不更新时,我更新图像在网络上。毕加索不加载更新的图像从Web在Android

Picasso.with(context).load("http://testServer.com/Images/sponsor.png").into(imageView1); 

在此先感谢。

+1

看到,因为毕加索内置CACH如此看来,从兑现其读数。尝试添加Picasso.with(getActivity())。invalidate(file);并告诉我发生什么事 – Moudiz

回答

5

Picasso使用缓存机制,因此同一图像不会被重新下载两次。

如果您需要绕过此缓存,则可以更改memorynetwork策略来执行此操作。

+1

Picasso.with(本) \t \t \t \t .load(URL) \t \t \t \t .memoryPolicy(MemoryPolicy.NO_CACHE) \t \t \t \t .networkPolicy(NetworkPolicy.NO_CACHE) \t \t \t (imageView); – Ashok

+0

禁用缓存工作正常,但花费更多时间加载。我使用PNG图像,如果我使用JPG,有什么优势!在更快的加载? – Ashok

+0

这需要更长的时间,因为它每次都下载图像。如果你只是想使缓存无效以强制重新下载,你可以使用@ Moudiz的回答 –

2

毕加索内置缓存,使图像自动缓存。尝试无效。 例如:

Picasso.with(getActivity()).invalidate(file); 
+0

试过这个不行的 – Ashok

+0

@Ashok:尝试:Picasso.with(getActivity())。invalidate(“file:”+ imageFile.getAbsolutePath());这对我有效。 –

0
public void loadImage(ImageView imageView, String image_url,Contextcontext) 
{ 
try 
    { 
    Picasso.with(context) 
    .load(image_url) 
    .memoryPolicy(MemoryPolicy.NO_CACHE) 
    .networkPolicy(NetworkPolicy.NO_CACHE) 
    .placeholder(R.drawable.default_image) 
    .into(imageView); 
    } 

    catch(Exception ex) 
    { 
    ex.toString(); 
    } 

} 
+0

你能为你的代码添加一点解释吗? –