在Image Url Android中替换新图像时,旧的延迟加载图像不会更改?

时间:2014-01-14 08:14:47

标签: android caching lazy-loading

您正在使用thest1 lazyload github .i已异步加载所有图像,一切顺利,但我的问题是当我更改服务器中的任何图像时。在延迟加载图像中没有显示其新图像只有旧图像开始显示先前加载的。例如我有第一个加载屏幕时列表视图中显示的4人个人资料图片的图像数据,当其中一个用户更改了他/她的个人资料图片时,即使用户更改了图像后它没有显示在列表视图中,它只加载了旧图像,我如何显示新图片。(我们在WHATZ APP中查看)。可以任何人建议任何帮助或片段。我还试过通用图片加载器,它也只加载旧图像。

谢谢

1 个答案:

答案 0 :(得分:0)

将此方法用于反转图像:

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"));

并在你的代码中检查“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();

如果大小与缓存上的大小不同,请删除缓存文件夹中的图像。