Android动画不流畅

时间:2012-10-01 14:31:31

标签: android animation timertask

我正在开发一款游戏,我在其中使用了一个计时器任务,需要不断运行以更新GUI。如果我尝试同时执行2个动画,它们就不能顺利运行,动画看起来很不稳定。

例如,即使我执行了帧动画,并且在运行时,我尝试滚动列表,它也不会根据需要平滑滚动。我尝试在runOnUiThread中运行一些动画,但没有运气。

我还注意到了一件事。使用image.setVisibility(View.GONE)或image.setVisibility(View.VISIBLE),会中断动画流程。

请为此问题提出解决方案或替代方案。同时执行多个动画会导致android出现问题吗?

5 个答案:

答案 0 :(得分:4)

您的目标API是什么?你能开启hardware acceleration吗?

    <application android:hardwareAccelerated="true" ...>

答案 1 :(得分:0)

如果您只是在模拟器上进行测试,也许您可​​以先尝试使用真实设备。我相信众所周知,仿真器不像真正的设备那样渲染动画。

答案 2 :(得分:0)

我认为你不能指望4.0之前的Android版本(冰淇淋三明治)的流畅动画。 尝试在以后的Android版本上运行它们,你会发现巨大的差异。

答案 3 :(得分:0)

答复有点晚,但我最近遇到了同样的问题并找到了解决问题的方法,所以对于那些感兴趣的人......

显然,如果你的观点正在转移到其他人身上,那么就会被迫重新绘制。防止过多重绘的一种方法是展平视图层次结构。

但是,如果一次有多个动画,这可能还不够。在这种情况下,如果您对启用了硬件加速的设备进行编程,则在重绘的视图(例如后台视图)上禁用它可以提供帮助(例如,调用View.setLayerType(View.LAYER_TYPE_SOFTWARE, null))。我真的不知道为什么,但它很好地平滑了动画。也许是因为GPU没有处理所有重绘。

答案 4 :(得分:0)

根据我的经验,内存使用会影响动画的性能。 因此,如果您可以减少应用程序的内存占用量,则可能会产生积极影响。一种简单的方法是减少正在使用的任何图像的文件大小。