使用AnimationDrawable制作大型动画

3

我正在尝试使用AnimationDrawable的帧动画来实现一些动画效果。
当我使用以下代码加载动画时:

animationHolder.setBackgroundResource(R.drawable.secondanimation);
frameAnimation = (AnimationDrawable)animationHolder.getBackground();

UI会变得无响应几秒钟(3-5秒)。我猜这是因为它必须加载大量的图片。(精确地说,是140个PNG图像,每个图像大小为400px x 300px,50KB)。
当我开始动画时,它运行得很好,至少在我的HTC Desire上。
如果我在模拟器中运行相同的代码,我会得到:“OutOfMemoryError”与“位图大小超出了VM预算”。
如何正确处理大型动画?我猜应该有某种“懒动画加载”的方式。类似的东西已经存在了吗?还是我必须推出某种自定义视图?
像“Talking Tom Cat”这样的其他流行应用程序是如何做的呢?

1
你找到了使用OpenGL实现这个的方法吗? - Sunny
1个回答

1

你不应该那样做动画... 如果你需要进行大量的动画,请考虑使用OpenGL。Android无法处理太多的图像,因为它使用了有限的位图内存。


有没有好的书籍或在线资源可以展示如何完成这样的事情?我不想为了几个简单的逐帧动画学习整个openGL。我知道这很难,但是有没有人有关于如何在Android视图中使用openGL运行动画的逐步教程。我不是在制作游戏,所以我没有任何游戏循环和其他游戏相关的东西。 - pzagor2
很抱歉,我不能在这个问题上帮你,我故意绕开了它 :D 但是找到这个应该不难,你可以发一个新的问题来询问 :) - Warpzit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接