0

我正在编写一个 android 应用程序,用户可以从服务器下载一些图像文件。那里的图像文件将存储在 android 手机中。

现在我想把一些图像文件放在apk文件中,用户可以在安装后快速启动应用程序。我发现我可以将它们放入assets目录,但该目录是只读的。当用户下载其他图像文件时,我需要将它们存储到另一个目录中。

所以会有两个目录来存放图片文件,但是它们是同一类型的。

这种情况有什么好的解决办法吗?

4

1 回答 1

1

查看http://developer.android.com/guide/topics/data/data-storage.html#filesInternal以获取可以在 Android 上放置数据的不同位置的列表。

您应该根据需要将下载的图像文件放在三个位置之一。

如果图像旨在供用户查看(例如下载的照片),请将它们放在外部存储设备上。如果它们是用户界面元素或其他重要的(但不是面向用户的)图像,请将它们放在内部存储中。如果它们是为了快速访问而被缓存但在必要时下载的(例如,在网站上找到的临时图像),请将它们放在内部缓存目录中 ( Context.getCacheDir())。

如果您没有很多资产,您可以在程序第一次运行时将它们复制到目标位置(例如,检查某个文件是否存在,并在完成设置后创建该文件)。然后你只需要检查一个地方(除非它是缓存目录,在这种情况下你不能保证文件会永远存在)。

如果您有很多资产文件,我会使用两阶段查找:首先查阅您下载的图像目录(例如,您可以覆盖内置资产),然后查阅您的资产目录。这也足够灵活,可以让您在需要时使用多个存储位置。

于 2012-09-16T06:14:07.323 回答