使用齐射

时间:2017-01-04 09:40:26

标签: android android-volley

我试图

  1. 将网格/列表的所有图像预加载到磁盘缓存中以便稍后使用,以便在恶劣的网络条件下显示图像。 (把它想象成离线照片库)
  2. 缓存只会按需刷新,永远不会自动刷新。
  3. 我希望避免使用我自己的代码,并希望尽可能地利用Volley。 100%截击可能吗?如果没有,可以通过任何其他图书馆实现吗?

1 个答案:

答案 0 :(得分:1)

我没有亲自使用过Volley。所以,我不确定Volley开箱即可提供图像缓存机制。相反,像Picasso这样的图像加载特定库提供了非常优雅的预缓存机制供您使用。如果您事先知道图像URL列表,只需调用fetch方法开始缓存文件。

// Returns Random Images always. Use your own source instead.
String[] urls = [
    "http://lorempixel.com/400/200",
    "http://lorempixel.com/600/400",
    "http://lorempixel.com/800/600",
    "http://lorempixel.com/300/150",
];

// Prefetch all images
for(String url : urls) {
    Picasso
        .with(getApplicationContext())
        .load(url)
        .fetch();
}

毕加索取出所有图像后,就可以接受毕加索的load()电话了。即使没有互联网连接,缓存的图像也能正常工作。

Picasso
       .with(getApplicationContext())
       .load("http://lorempixel.com/400/200") // Already cached image
       .into(yourImageView);

要将Picasso添加为项目的依赖项,请将以下行添加到gradle。

compile 'com.squareup.picasso:picasso:2.5.2'