【问题标题】:How to play animations in a SurfaceView in Android如何在 Android 的 SurfaceView 中播放动画
【发布时间】:2011-06-16 23:34:57
【问题描述】:

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

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

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

任何关于替代方法的帮助或提示将不胜感激。

【问题讨论】:

    标签: android animation surfaceview


    【解决方案1】:

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

    【讨论】:

    • 这可能是我将不得不使用的方法,除非我缺少一些方便的方法,我希望有人知道。
    • 三不需要跟踪任何类型的东西。您可以使用 AnimationDrawable。见这里:stackoverflow.com/questions/6531246/…
    猜你喜欢
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多