Android 在第一次调用数据后将其存储在设备中

Android 在第一次调用数据后将其存储在设备中,android,storage,Android,Storage,我想这样做。我的应用程序有很多屏幕,在每个屏幕的顶部,我都会显示一个imageView作为徽标。所以我有20个屏幕,这意味着我的drawable中有(20*3)个图像,这使得我的应用程序有很多Mb。因为这个图像是静态的,永远不会改变,所以我想这样做:从网络上获取它(我知道怎么做,我不是在问这个问题)只是第一次启动这个屏幕,然后这个图像被存储在用户设备的某个地方,然后使用该路径作为源。(我的意思是不再下载它,因为它会让每次等待的用户感到恼火)。那有可能吗?因为我正在从SD检索数据,这会不会让我的应

我想这样做。我的应用程序有很多屏幕,在每个屏幕的顶部,我都会显示一个imageView作为徽标。所以我有20个屏幕,这意味着我的drawable中有(20*3)个图像,这使得我的应用程序有很多Mb。因为这个图像是静态的,永远不会改变,所以我想这样做:从网络上获取它(我知道怎么做,我不是在问这个问题)只是第一次启动这个屏幕,然后这个图像被存储在用户设备的某个地方,然后使用该路径作为源。(我的意思是不再下载它,因为它会让每次等待的用户感到恼火)。那有可能吗?因为我正在从SD检索数据,这会不会让我的应用程序运行得更慢(不是第一次,而是其他时间)?

是的,你可以很容易地做到这一点。您也不必将数据存储在SD卡上。您可以将映像存储在内部存储器中

基本上,设置一个缓存目录。当您需要映像时,请检查缓存目录,如果文件不在那里,请通过http下载并将文件存储在缓存目录中


它将改变您获取资源的方式(例如,您将无法使用R.drawable.imagename),但您可以通过编程方式加载drawable。

所以您有60个不同的图像?或者只有一个静态图像显示在60个位置?20个徽标,每个屏幕一个。为什么不制作一个包含标题或徽标的布局,然后在每个需要显示它的布局中使用(一个图像显示任意数量的屏幕),通过http下载,您必须处理脱机用户,数据使用每个屏幕都有自己的徽标。因此,我将有20个标志。因为每个徽标都存储在3个不同的绘图板(hdpi等)中,所以我有60个图像,这使我的尺寸增大。我想减少我的应用程序大小,所以我更喜欢权衡:第一次下载,保存在某个地方,然后每次都带上。有没有关于如何在android中设置缓存的示例代码?所谓缓存,我只是指文件系统中的文件。我没有想到会有比Android参考文档的数据存储部分更复杂的内容()