android - 在 Android 中使用 Sprite 表动画

标签 android animation android-animation sprite sprite-sheet

我做了很多研究,但找不到将 spritesheet 渲染为动画的清晰示例。我有这个 Sprite 表:

enter image description here

我会感谢大量关于高效加载的示例代码

最佳答案

方法很简单,

在开始编写代码以将 sprite 分成不同的单独图像文件之前,您需要什么,每个文件代表动画中的一个帧。 注意:您可以通过代码实现上述功能,但这是另一个问题。

1. 现在您需要创建一个 xml 文件作为您的动画。 xml 将在 res/drawble 中

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
    <item android:drawable="@drawable/exp0" android:duration="100"/>
    <item android:drawable="@drawable/exp1" android:duration="100"/>
    <item android:drawable="@drawable/exp2" android:duration="100"/>
    .
    .

其中每个项目都是一个帧(按顺序)- exp0 是第一帧 exp1 是第二帧,依此类推。

android:oneshot="true"

将使您的动画循环一次,然后保持显示最后一帧。代码的其余部分是不言自明的(持续时间以毫秒为单位)。

2.您需要将 xml 文件分配给 View 并启动它。

假设我们希望此动画显示在网格中的“tileView”对象上(您可以对任何 View 执行此操作)

    tileView.setImageResource(R.drawable.explosion_animation);
    AnimationDrawable explosionAnimation = (AnimationDrawable)tileView.getDrawable();
    explosionAnimation.start();

我们在这里所做的是将我们的动画 xml 设置为 ImageResource(explosion_animation 是我们创建的 xml 文件) 然后我们将动画本身放入一个 AnimationDrawable 对象中。 最后我们开始动画。

关于android - 在 Android 中使用 Sprite 表动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201187/

相关文章:

android - 使用 JSOUP 提取内容

android - 我如何使用 "android:layoutDirection"?

android - Android 中缺少 slide_in_right 和 slide_out_left 动画?

android - 如何制作正确的进/出动画?

android - libgdx opengl 行质量改进

android - 打开带有空格的本地 Android 文件

ios - LNPopupController : The popup controller is already in transition. 将忽略此转换请求

javascript - 如何同时运行两个 jQuery 动画?

java - 如何正确执行多线程,使各个线程上的图标一起在屏幕上移动?

android animate() withEndAction() vs setListener() onAnimationEnd()