动画狗走路

时间:2013-11-03 22:39:53

标签: android

我不知道如何处理这个问题。我正在做一个应用程序,其中我想展示一只狗走路。我从哪里开始这样的动画?

*我是否收到了一系列图片(一步一步走)并快速加载它们?

*我是否获得了GIF图片的步行狗并以某种方式将其加载到Android上?

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

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

请帮助我完成这样的事情,这样我就可以开始阅读那个领域了

谢谢

3 个答案:

答案 0 :(得分:2)

如果你有一步一步的图像,那么使用Xml和AnimationDrawable

首先在xml文件夹文件中创建动画drawable,例如

walking_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();

结果

enter image description here

答案 1 :(得分:1)

我个人会选择第一种方法的修改版本:创建一个包含狗步动画所有帧的图像文件。使用像this这样的矩形在画布上画出你的狗:

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

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

在动画节目中使用的另一种方式(并且稍微进入“以编程方式移动像素”的方向)是使用skeletal animations。使用骨架动画的优势在于,您只需要标准姿势中的狗模型,并且可以使用动画骨骼将其他姿势应用于每个帧中的模型。不幸的是,我不知道任何提供此技术实现的android库。此外,您可能需要自己为动画建模。

答案 2 :(得分:1)

如果它只是一个简单的2-D游戏,那就做一个精灵动画。

enter image description here

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

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

您可以从Google Play下载其examples个应用程序。