首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Volley NetworkImageView清晰缓存图像

Volley NetworkImageView清晰缓存图像
EN

Stack Overflow用户
提问于 2014-08-13 13:10:20
回答 6查看 7K关注 0票数 8

有没有人知道是否可以使用谷歌的Volley库从一个NetworkImageView中清除缓存的图像?

我有一个阿凡达图像在一个NetworkImageView,并希望显示新的图像,一旦我已经上传到服务器。现在,如果我做profileImg.setImageUrl("myUrl", mImageLoader);,我会得到缓存的图像。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-01-28 21:57:02

所以我要迟一点回答我自己的问题。最后,我采取了一种不同的方法,以确保我总是得到一个阿凡达图像的最新副本,结果是非常简单。

我使用以下方法,而不是试图从缓存中清除单个图像。

代码语言:javascript
复制
int time = (int) (System.currentTimeMillis());//gets the current time in milliseconds
String myUrl = "www.mySite.com?timestamp=" + String.ValueOf(time);
profileImg.setImageUrl("myUrl", mImageLoader);

这样做是在我调用的url中附加一个假想的参数,以获得具有当前时间戳的图像。这保证了,我总是打电话给一个独特的网址,因此,因此,总是得到最最新的版本的图像。

这种方法的优点在于,它不仅限于截击,而且可以使用,但您可以选择进行网络呼叫。

票数 3
EN

Stack Overflow用户

发布于 2014-08-14 07:05:42

看看这个:

1) 关闭缓存:如果希望禁用特定url的缓存,可以使用setShouldCache()方法,如下所示。

代码语言:javascript
复制
StringRequest stringReq = new StringRequest(....);
stringReq.setShouldCache(false);

2) 删除特定的缓存:使用remove()删除的缓存。

代码语言:javascript
复制
yourRequestQueue.getCache().remove(url);

3) 删除所有缓存

代码语言:javascript
复制
yourRequestQueue.getCache().clear(url);

另外,请查看这个链接这里

希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2017-11-28 13:23:14

在LruBitmapCache中,您应该执行diable (url,位图):

代码语言:javascript
复制
 @Override
    public void putBitmap(String url, Bitmap bitmap) {
       // put(url, bitmap);
    }

这样,每次调用volley方法映像时,不要保存以捕获

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25287161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档