Android精灵在应该静止时会移动

时间:2011-09-30 06:35:13

标签: android android-animation sprite sprite-sheet

我创建了一个长度为18帧的精灵,它应该是静止的并且贯穿帧并循环播放动画,但是当它运行时,它会在屏幕上缓慢移动,直到它到达最后一帧然后抖动回到原来的位置,假设留在那里。

我不知道它是这样做的原因,并试图使它更小的尺寸和更大的尺寸,在某些尺寸它不移动,但只是动画喜欢它应该做的。 如果有人能够解释为什么会发生这种情况以及如何阻止它移动并停留在预期的位置,那将非常感激。

我只使用1行精灵,我使用gimp创建精灵并将其保存为png。

1 个答案:

答案 0 :(得分:0)

代码相当长,这就是为什么我没有添加它,但它基于本教程 aquarium live wallpaper tutorial

我想我找到了答案,我在我创建的名为drawable的文件夹中有png精灵,我放了所有图像,我再次尝试但是这次将精灵放在其他文件夹中它没有移动,我尝试缩放精灵也使它变得有点不稳定,我希望使用缩放而不是所有屏幕保持相同的大小,这适用于普通图像但是对于精灵它会导致一些问题,也许我会尝试使用drawable-large-mdpi文件夹中最大的大小,看看它是否会导致任何问题。 我将使用该方法更新并通知您。 如果只有一个图像并根据屏幕尺寸进行缩放,那将会很不错。

好吧我终于找到了答案并且它可能会帮助那些创建精灵的人,分成数量帧时的宽度必须是一个整数,因为测量是在int而不是float或double,所以它会移动,因为当帧得到将它分成了一小部分而不是导致它移动(我猜)无论浮动额外测量是什么。 示例:如果精灵高100像素,宽1082像素,并且我有15帧,则每帧的宽度将为72.133333333像素宽,导致每个帧的宽度为72.133333333像素,导致图像移动图像的额外长度,同时保持动画看起来不错。现在,如果它是1080px宽,那么每帧将是72px宽一个漂亮的整数然后将完美的动画。 因此,对于那些创建自己的精灵的人来说,确保当帧被分割时,宽度等于是一个整数(我的问题是我创建了一个图像缩小它而不检查每个帧的宽度,所以只有一个图像大小通常工作,有时我很幸运,得到了两个,我应该想出来,因为它全部运行在int而不是浮动测量宽度。 希望这有助于其他人制作精灵。 萨姆