如何使用 Glide 检查图像是否已缓存在 android 移动设备中
How to check is Image is already cached in android mobile using Glide
我将我的图像及其缩小尺寸的图像(模糊)存储在我的亚马逊服务器中,并将这两个路径都存储在数据库中。
现在我想知道如何在未缓存原始图像的情况下首先显示模糊图像,然后在单击下载时将下载原始图像。我在这里使用 Glide...
我试过了
Glide.with(this)
.load(mainUrl)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.thumbnail(Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE))
.centerCrop()
.into(imageView);
但问题是它会在后台自动下载原始图像。
Glide.with(TheActivity.this)
.load("http://sampleurl.com/sample.gif")
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(theImageView);
您的代码将阻止 Glide 下载 GIF,并且只会显示已缓存的 GIF,这听起来像是您不想要的。
- 是的,旧图像最终会被删除。默认情况下,Glide 使用 LRU 缓存,所以当缓存满时,最近最少使用的图像将被移除。如果需要,您可以轻松自定义缓存的大小来帮助实现这一点。有关如何更改缓存大小的信息,请参阅配置维基页面。
- 遗憾的是,没有任何方法可以直接影响缓存的内容。您既不能显式删除一项,也不能强制保留一项。在实践中,如果磁盘缓存大小合适,您通常不需要担心这两个问题。如果您经常显示图像,它就不会被驱逐。如果您尝试在缓存中缓存 space 中的其他项目和 运行,较旧的项目将被自动逐出以使 space.
如果你想在加载图像之前显示占位符,请使用以下代码:-
Glide.with(this)
.load(mainUrl)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder("provide placeholder image here")
.thumbnail(Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE))
.centerCrop()
.into(imageView);
我在 Glide Github 中问过。
https://github.com/bumptech/glide/issues/2051
因此将 apply(RequestOptions.onlyRetrieveFromCache())
添加到您的 RequestOptions
。您可以注册一个侦听器,当缓存中没有图像时会调用 onFailed
。
我将我的图像及其缩小尺寸的图像(模糊)存储在我的亚马逊服务器中,并将这两个路径都存储在数据库中。
现在我想知道如何在未缓存原始图像的情况下首先显示模糊图像,然后在单击下载时将下载原始图像。我在这里使用 Glide...
我试过了
Glide.with(this)
.load(mainUrl)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.thumbnail(Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE))
.centerCrop()
.into(imageView);
但问题是它会在后台自动下载原始图像。
Glide.with(TheActivity.this)
.load("http://sampleurl.com/sample.gif")
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(theImageView);
您的代码将阻止 Glide 下载 GIF,并且只会显示已缓存的 GIF,这听起来像是您不想要的。
- 是的,旧图像最终会被删除。默认情况下,Glide 使用 LRU 缓存,所以当缓存满时,最近最少使用的图像将被移除。如果需要,您可以轻松自定义缓存的大小来帮助实现这一点。有关如何更改缓存大小的信息,请参阅配置维基页面。
- 遗憾的是,没有任何方法可以直接影响缓存的内容。您既不能显式删除一项,也不能强制保留一项。在实践中,如果磁盘缓存大小合适,您通常不需要担心这两个问题。如果您经常显示图像,它就不会被驱逐。如果您尝试在缓存中缓存 space 中的其他项目和 运行,较旧的项目将被自动逐出以使 space.
如果你想在加载图像之前显示占位符,请使用以下代码:-
Glide.with(this)
.load(mainUrl)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder("provide placeholder image here")
.thumbnail(Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE))
.centerCrop()
.into(imageView);
我在 Glide Github 中问过。 https://github.com/bumptech/glide/issues/2051
因此将 apply(RequestOptions.onlyRetrieveFromCache())
添加到您的 RequestOptions
。您可以注册一个侦听器,当缓存中没有图像时会调用 onFailed
。