在我的应用程序中有很多图像资源。用于动画和嵌入式图库。我的问题是 - 在哪里存储这些资源? 我必须将该数据与应用程序绑定 - 在安装过程中无需下载。 目前我的所有图像都存储在drawable文件夹中。但是,例如,当我尝试获取图库(网格视图)的图像时,我得到了内存异常。当我尝试运行动画时也会发生这种情况。
我应该将这些图像存储在SD卡中,并在需要时加载它。然后从内存中释放资源。 怎么做 - 把资源放在资产/原始,然后保存在SD卡?然后加载它?
请帮我解决这个问题。
答案 0 :(得分:0)
有很多与此相关的问题:
How do I transfer an image from its URL to the SD card?
但是,这不会解决您的OutOfMemoryProblem。在这种情况下,这很可能是因为图像太大。您可以在安装应用程序之前缩小它们。另一种方法是以编程方式调整它们的大小。
答案 1 :(得分:0)
在我看来,你想要的方法是将图像包含在drawables中是方便实用的。
但是,如果图像太大而无法同时将它们加载到内存中,那么您会遇到其他问题。
我要做的第一件事是检查由图像大小引起的内存 IS - 尝试使图像更小,看看你是否得到类似的错误然后你知道你的应用程序可能正在做一些可怕的事情(加载或显示时内存泄漏?)。
如果图像大小有问题但是应用程序正确启动,那么您需要制定一个计划,只在需要显示它们时从资源加载图像(而不是在显示任何图像之前加载所有图像)并且在不再需要图像时处理这些资源。
根据您的情况和上下文,有一些很好理解的方法可以根据需要进行缓冲加载。