1

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

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

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

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

4

5 回答 5

4

你的目标 API 是什么?可以开启硬件加速吗?

    <application android:hardwareAccelerated="true" ...>
于 2012-10-01T16:57:32.727 回答
1

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

于 2012-10-01T16:26:06.900 回答
0

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

于 2013-01-13T16:44:36.893 回答
0

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

显然,如果您的视图超出其他视图,则这些视图将被迫重新绘制。防止过多重绘的一种方法是扁平化视图层次结构。

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

于 2014-12-02T01:23:12.807 回答
0

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

于 2015-04-27T17:28:25.787 回答