因此,我尝试通过此示例中给出的示例来设置按钮动画:Android Developers 并用Pngs制作了一张巨大的(95张图片)动画列表。当试图运行应用程序并按下按钮时,我立即收到有关内存不足的错误。文件大小约为170k(总共12mb)。这对动画来说太过分了吗?我意识到严重缺乏对最终用户的关注'采用这种方法的存储空间,但它主要是我自己使用的,并且无所谓。
图像非常大,但需要通过图形引擎缩小尺寸,这可能与它有关吗?
或者95张照片太多了?我可以让照片更小,现在它们的分辨率非常高,事后看来它非常愚蠢。
然而,无论如何,我可以压缩图片并使它们变小,这样就不会有问题。我只需要知道如何解决这个问题,如果有一个关于在特定时间可以加载到RAM中的数量的阈值,那么我可以匹配图像大小或者是否有超越默认RAM的方法设置或克服这个?
答案 0 :(得分:1)
不要查看文件大小。图像必须是未压缩的,因此Android可以使用它。图像大小或多或少等于宽度*高度* 4。 4K图像需要大约35MB的内存。
现代设备可为每个应用分配64MB内存。这意味着您只能加载一个这样的图像。如果您的手机有更高的堆限制,可能会更多。
AnimationDrawable适用于小动画(如100x100px)。如果你想播放这么大的动画,你应该把它编码为mp4。如果你可以使图像更小或使动画程序化 - 去吧。
要覆盖内存限制,请使用' largeHeap'标记或更改ROM配置中的设置(您必须使用自定义ROM刷新设备)。