第一次被召回后在设备中存储数据android

问题描述:

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

+0

所以你有60个不同的图像?或者只有1个静态图像显示在60个地方? – zapl 2012-03-18 12:53:31

+0

20个徽标,每个屏幕都有一个徽标。 – 2012-03-18 13:01:02

+0

为什么不制作包含您的标题或徽标的Layout,然后在需要显示它的每个布局中使用(使用http下载您必须处理离线用户,每个屏幕有 – moujib 2012-03-18 13:08:15

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

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

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

+0

有没有关于如何在android中设置缓存的示例代码? – 2012-03-18 13:00:48

+0

通过缓存,我只是指文件系统上的文件。我没有想到任何比Android参考文档的数据存储部分中的内容更复杂的东西(http://developer.android.com/guide/topics/data/data-storage.html) – 2012-03-18 13:25:30