如何在Android中的SurfaceView中播放动画

时间:2011-06-16 23:34:58

标签: android animation surfaceview

我有一个SurfaceView,它正在绘制一系列位图。这些位图可以很容易地在几何上进行操作(缩放/旋转/平移/等)。一个例子是弹跳的球,它可以只使用平移/旋转操作。球只是一个位图。

我希望用一系列位图替换这个'球'位图,例如,如果球在一连串的烟花中爆炸,我有各自的帧,我希望将它们串在一起。

无需在SurfaceView中的每个onDraw()调用上手动循环它们,我该如何解决这个问题?我知道在正常情况下我可以使用XML文件中的帧制作AnimationDrawable,将其绑定到ImageView(设置为背景)然后调用它。但是,我使用SurfaceView在屏幕上显示我的所有图形,而不是ImageViews。我已经读过你可以覆盖SurfaceViews之上的其他视图,但我不确定我是否可以获得所需的确切位置。例如,我的SurfaceView上的球可能会在X = 65 Y = 21时爆炸,我怎么能将这个精确的坐标翻译成我的ImageView?

非常感谢任何有关替代方法的帮助或提示。

1 个答案:

答案 0 :(得分:1)

如果你想让它更加分离,你可以创建另一个处理这个动画的类,并跟踪它所在的帧和要使用的位图,然后将精灵的绘图委托给SurfaceView中的这个类。是onDraw