2014-01-14 11 views
0

您好,我使用thest1 lazyload github。我已經加載所有圖像異步,一切順利,但我的問題是,當我有任何更改服務器中的圖像。懶惰加載圖像不顯示其新圖像只有舊圖像加載早些時候開始所示。 例如我有4個人的個人資料圖片的圖像數據,當我第一次加載屏幕時,當用戶改變他/她的個人資料圖片時,即使在圖像被用戶改變後,它也不是在列表視圖中顯示,它只加載舊圖像,我如何顯示新圖片(如我們在WHATZ APP中看到的)。可以任何一個建議任何幫助或片段。我也試過通用圖像加載器,它也只加載舊圖像。在Image Url Android中替換新圖像時,舊的加載圖像不會更改?

謝謝

+0

你清除了緩存嗎? – Raghunandan

+0

如果我清除緩存,則會顯示新圖像。但是,如何清除緩存?如果每次清除緩存時都會清除緩存。 – Ramz

+0

你可以像1或0形式的服務器一些信息。取決於值清除緩存。 1意味着更新。 0意味着沒有變化 – Raghunandan

回答

0

使用此方法retrive圖像:

String myxml = SaxXmlParser.getXmlFromUrl(targetCtx 
        .getString(R.string.imgurl) 

      SaxXmlParser parser = new SaxXmlParser(xml, "Imagelist"); 
      parser.runParser(); 
       for (HashMap<String, String> hashMap : parser.getParsedData()) { 
       TableImage images = new TableImage(); 
       images.url = hashMap.get("imageurl"); 
           images.new = Integer.parseInt(hashMap.get("new")); 

,並在我們的代碼檢查,如果 「新」 的標誌爲 「1或0」

如果 「1」:

private File cacheDir; 
public File getFile(String url){ 
    String filename=String.valueOf(url.hashCode()); 
    File f = new File(cacheDir, filename); 
    return f; 

} 

public void clear(String url){ 
    File files= url; 
    if(files==null) 
     return; 
    for(File f:files) 
     f.delete(); 
} 

編輯上網文件大小:

URL url = new URL("http://hayoola.com/myimage.png"); 
URLConnection urlConnection = url.openConnection(); 
urlConnection.connect(); 
int file_size = urlConnection.getContentLength(); 

如果大小與緩存上的大小不同,請刪除緩存文件夾上的圖像。

+0

但我不會改變我的鏈接中的任何數據,例如我打電話的鏈接是https://www.ramz.com/userid.png,甚至在他/她更改圖像後它將是相同的圖像url.an更多的事情是,在iOS中圖像是改變它會自動改變。但在Android它不是爲什麼? – Ramz

+0

好吧,如果你不想從其他方獲得代碼,那麼你可以從緩存的圖像中獲得每個圖像大小爲 的「File.length()」,並將其從url下載圖像。如果相等則無所事事,否則 用新的取代緩存的一個。 –

相關問題