如何在Android的SurfaceView中播放动画

如何在Android的SurfaceView中播放动画,android,animation,surfaceview,Android,Animation,Surfaceview,我有一个SurfaceView,目前正在绘制一系列位图。这些位图可以轻松地进行几何操作(缩放/旋转/平移等)。例如,正在反弹的球可能只使用平移/旋转操作。球只是一个位图 我希望用一系列位图替换这个“球”位图,例如,如果球在一片焰火中爆炸,我有单独的帧,我希望将它们串在一起 在我的SurfaceView中,不必在每次onDraw()调用中手动循环使用它们,我如何才能做到这一点?我知道在正常情况下,我可以使用XML文件中的帧制作一个动画绘图,将其绑定到ImageView(设置为背景),然后调用它。但

我有一个SurfaceView,目前正在绘制一系列位图。这些位图可以轻松地进行几何操作(缩放/旋转/平移等)。例如,正在反弹的球可能只使用平移/旋转操作。球只是一个位图

我希望用一系列位图替换这个“球”位图,例如,如果球在一片焰火中爆炸,我有单独的帧,我希望将它们串在一起

在我的SurfaceView中,不必在每次onDraw()调用中手动循环使用它们,我如何才能做到这一点?我知道在正常情况下,我可以使用XML文件中的帧制作一个动画绘图,将其绑定到ImageView(设置为背景),然后调用它。但是,我使用SurfaceView在屏幕上显示我的所有图形,而不是ImageView。我已经读到你可以在SurfaceView上覆盖其他视图,但我不确定我是否可以获得所需的确切位置。例如,在我的SurfaceView上,球可能在X=65 Y=21时爆炸,我如何将这个精确的坐标转换为我的ImageView


如果您想在其他方法上提供任何帮助或提示,我们将不胜感激。

如果您想让它更加独立,您可以创建另一个类来处理此动画,并跟踪它所在的帧和要使用的位图,然后在
SurfaceView
onDraw

中将精灵的绘制委托给此类,这可能是我将要使用的方法,除非我缺少一些方便的方法,我希望有人能知道。第三,没有必要记录任何类似的事情。您可以使用AnimationDrawable。请看这里: