2015-10-05 142 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

你能爲你的代碼添加一點解釋嗎? –