【问题标题】:android loading and saving images on the deviceandroid在设备上加载和保存图像
【发布时间】:2010-12-21 06:45:13
【问题描述】:

我正在构建将从网站加载新闻列表的应用程序。每个新闻/标题都有一个图像。我想保存/兑现图像,这样用户就不必再次下载它们。

问:在您看来,更好/更充分的方法是什么:加载图像并将其保存在设备上还是使用 CacheManager?目前我正在使用第一个解决方案,一切正常。但是,该网站有许多类别,每个类别的新闻更多,因此设备上保存了很多图像。在这种类型的应用程序中,将图像保存在设备上是否正常?

感谢您的帮助, 商标

【问题讨论】:

    标签: android image webview


    【解决方案1】:

    我认为您不应该将图像保存在设备上,原因有很多:

    1. 为什么要在新闻图片上浪费设备空间?用户想要的只是阅读新闻,仅此而已。 (在您的情况下,可能稍后再打开它,但仍然 - 不是永远)
    2. 您可以将其保存在设备上并制作应用程序。假设 24 小时后删除这些文件..
    3. 主要问题是隐私问题,当用户删除缓存文件时,他认为他访问过的所有网站都已从设备中删除,但在这种情况下,它们不是......

    也许您可以在应用程序中添加一个“清理缓存”按钮。但毕竟我写了我认为使用缓存管理器是最好的方法 - 只是因为它完全是为了这些东西......

    :)

    罗特姆

    【讨论】:

    • Rotem,我认为您误解了缓存在 android 中的作用。每个应用程序都有自己的专用目录,开发人员可以使用它来存储缓存文件。您可以从设置中清除缓存。图像更大的问题是,在进行滚动和获取图像的事情时,您需要快速访问这些数据,否则 UI 线程会暂停,动画会非常慢。
    【解决方案2】:

    我没有找到使用 CacheManager 的理由。我使用 getCacheDir 并将所有内容存储在文件中。我有两级缓存。首先,当我获取它时,我将其存储在内存和磁盘中。当内存中的对象超过 30 个时,我开始清理内存以为新图像腾出空间。但是,我仍然将图像保存在磁盘上,并根据需要将其导入内存。我发现这给了我最流畅的滚动。大约一个小时后,我也开始使磁盘上的图像过期。

    【讨论】:

    猜你喜欢
    • 2012-09-06
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    相关资源
    最近更新 更多