1

我不知道如何解决这个问题。我正在做一个应用程序,我想在其中展示遛狗。我从哪里开始制作这样的动画?

*我是否会获得一组图片(一步一步地走)并快速加载它们?

*我是否会得到一张遛狗的 GIF 图片并以某种方式将其加载到 Android 上?

*以编程方式移动像素(我希望不是!)

*我不知道的其他一些库或解决方案?!

请帮助我了解如何完成类似的事情,以便我可以开始在该领域阅读

谢谢

4

3 回答 3

3

如果你有图像一步一步然后使用 Xml 和AnimationDrawable

首先创建动画xml内部drawable文件夹文件,例如

walk_dog.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="false">
  <item android:drawable="@drawable/step1" android:duration="200" />
  <item android:drawable="@drawable/step2" android:duration="200" />
  <item android:drawable="@drawable/step3" android:duration="200" />
  <item android:drawable="@drawable/step4" android:duration="200" />
</animation-list>

现在到ImageView集合android:background="drawable/walking_dog"

在活动onCreate添加

//walkingdog -> is the imageview id
ImageView walkingDog = ( ImageView ) findViewById(R.id.walkingdog);

//now start walk
AnimationDrawable theDogAnimation = (AnimationDrawable) walkingDog.getBackground();
theDogAnimation.start();

结果

在此处输入图像描述

于 2013-11-03T23:43:16.080 回答
1

如果您制作的只是一个简单的 2-D 游戏,只需制作精灵动画即可。

在此处输入图像描述

看看这个关于这个主题的优秀教程。这是他回答的第一段中描述的方法 maddin45,但我指向的教程更彻底地解释了它。

但是,如果您正在寻找一种不会让您陷入实现细节的更简单的解决方案,您可能希望使用一个可以在后台完成大量此类工作的游戏引擎。AndEngine就是这样一种引擎。

您可以从 Google Play下载其示例应用程序。

于 2013-11-03T23:52:09.317 回答
1

我个人会选择第一种方法的修改版本:创建一个包含遛狗动画所有帧的图像文件。使用 Rects 在画布上绘制你的狗,如下所示

canvas.drawBitmap(dogBitmap, sourceRect, destinRect, null);

其中dogBitmap是狗动画的位图,sourceRect是包含当前动画帧的像素坐标的 Rect 对象,包含destingRect要绘制狗的屏幕坐标,最后的 null 用于仅在以下情况下才需要的 Paint你想过滤图像。然后只需为每一帧移动 sourceRect 。但请注意,在 android 应用程序中加载许多(大)图像文件可能会超出您的堆限制,因为 android 会存储未压缩的加载位图。

动画程序中使用的另一种方法(并且有点“以编程方式移动像素”的方向)是使用骨骼动画。使用骨骼动画的优点是您只需要标准姿势的狗模型,并且可以使用动画骨骼在每一帧中将其他姿势应用于模型。不幸的是,我不知道任何提供这种技术实现的 android 库。此外,您可能必须自己建模动画。

于 2013-11-03T23:20:34.360 回答