我进行了很多研究,但是我找不到一个明确的例子来将精灵表渲染成动画。我有这个精灵表:
我会非常感激提供一个加载此图像的高效示例代码。
我进行了很多研究,但是我找不到一个明确的例子来将精灵表渲染成动画。我有这个精灵表:
我会非常感激提供一个加载此图像的高效示例代码。
<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();
Rect
数组。Rect[] frames = new Rect[TOTAL_NUMBER_OF_FRAMES];
您的表格似乎具有等距精灵,因此您可以使用嵌套的for循环来数学地填充数组。(注意,您可能需要设置BitMapFactory选项以不缩放位图)。
您可以使用以下方法绘制第n帧:
canvas.drawBitmap(bmp, frames[n],
new RectF(x, y, x + frames[n].width(), y + frames[n].height()),
paint);