【问题标题】:Quick inquiry about ImageLoader DisplayImage functionImageLoader DisplayImage 功能快速查询
【发布时间】:2017-02-26 22:22:35
【问题描述】:

我对 Universal Image Loader 库中的 DisplayImage 函数有疑问。如果我有一个像“www.myexample.com/image.jpg”这样的网址,然后说:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
    .cacheInMemory(true)
    .build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
    .defaultDisplayImageOptions(defaultOptions)
    .build();
ImageLoader.init(config);
String url= "www.myexample.com/image.jpg";
ImageLoader.getInstance().DisplayImage(url, imageviewexpample);

我有以下问题:

  1. 图像加载器会先下载位图并将其保存在缓存中,然后再从缓存中加载吗?或者也许我必须做一些事情才能下次从缓存中加载它。
  2. 是“url”参数我传递了 ImageLoader 用来保存它的密钥吗?如果没有,我怎么知道密钥,以便我可以分别从缓存中检索图像。
  3. 不在这里问,我怎么能知道这些问题的答案?我的意思是,有没有我可以使用的像 Android API 这样的文档?可能我必须阅读库中的所有代码?

【问题讨论】:

    标签: android universal-image-loader


    【解决方案1】:
    1. 是的,使用这些选项 (cacheInMemory(true)) 图像将保存在内存缓存中。 UIL 还可以将它们保存到设备的外部存储中以“缓存”它们。 我认为缓存的大小是有限的,因此您可能无法得到保证 每个图像都被缓存,但这是一个猜测。见 3。
    2. 没有。见this question
    3. 我的意思是,有没有我可以使用的像 Android API 这样的文档?

      在这种情况下,是的,那个库非常好documented。该项目的 Github 页面将是我检查信息的第一个地方(同时检查问题页面)。其他一些库可能也没有记录,那么 Google 和 SO 会有所帮助。自己查看源代码可能是一个好选择,也可能不是一个好选择,这取决于您有多少时间。对于与 UIL 等广泛使用的库有关的最常见问题,它不应该是必要的,但仍然可以得到回报。

    【讨论】:

    • 非常感谢。但是关于第一个问题:图像会保存在缓存中,这是肯定的,但是下次使用相同的 url 调用“DisplayImage”函数时,图像是从互联网还是从缓存中检索?,这就是我找不到的东西谷歌或操作系统中的答案,因此让我想知道是否应该阅读源代码。
    • @LuisE 这就是缓存的用途,不必一遍又一遍地从互联网加载图像,所以一般来说:是的,它将从缓存而不是互联网加载。这在“缓存”一词中有所暗示。
    • 谢谢你,现在我知道如果它还没有,它会从缓存中存储,如果有,就会从缓存中加载。我很困惑,因为我使用的是来自互联网的 URL,所以我猜它每次都会从那里检索,但现在我知道 ImageLoader 库足够智能,可以首先检查缓存并获取图像,哪个键是基于代码的代码网址。
    猜你喜欢
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多