2017-03-06 59 views
0

我在我的亚马逊服务器中存储我的图像和缩小图像(blured),并将两个路径存储在数据库中。如何检查图像已被缓存在Android移动使用Glide

现在我想知道如何先显示模糊图像,如果原始图像没有缓存,并点击下载它将下载原始图像。我使用的滑翔这里...

我想这

Glide.with(this) 
      .load(mainUrl) 
      .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
      .thumbnail(Glide.with(this) 
       .load(url)            
       .diskCacheStrategy(DiskCacheStrategy.SOURCE)) 
      .centerCrop() 
      .into(imageView); 

,但问题是,它atomatically下载原始图像中的背景。

+0

您实际上需要将模糊图像设置为占位符。 Glide Builder类为您提供了一个占位符方法。 – Avi

+0

@Marcin如何检查前显示图像已被缓存或不存在 –

+0

不知道你需要做什么。看到这个线程︰https://github.com/bumptech/glide/issues/509 –

回答

1
Glide.with(TheActivity.this) 
    .load("http://sampleurl.com/sample.gif") 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(theImageView); 

您的代码将防止滑翔从下载GIF和将只显示GIF如果已经缓存,它听起来就像你不想要的。

  • 是的,旧的图像最终会被删除。默认情况下,Glide使用LRU缓存,所以当缓存满时,最近最少使用的图像将被删除。如果需要,您可以轻松地自定义缓存的大小以帮助完成此操作。有关如何更改高速缓存大小,请参阅配置wiki页面。
  • 不幸的是,没有办法直接影响缓存的内容。您不能显式删除某个项目,也不能强制保留项目。在实践中使用适当的磁盘缓存大小,您通常不需要担心做任何一方。如果你足够频繁地展示你的图片,它不会被驱逐。如果您尝试缓存其他项目并且缓存空间不足,则较旧的项目会自动清除以腾出空间。
1

如果你想显示图像占位符之前加载,然后用下面的代码: -

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); 
+0

我不想使用占位符。我的数据库表中有两个图像(第一个是原始图像,第二个是原始图像(模糊图像)的缩小尺寸)。第一次我想用下载的图标显示模糊的图像,点击图标后会下载原始图像并显示。 –

+0

我想知道如何检查原始图像是否已被缓存。 –

+0

请在这里找到解决方案(https://github.com/bumptech/glide/issues/712)希望它可以帮助 – 2017-03-06 11:42:30