2011-08-03 210 views
3

我正在使用带有INFINITE重复设置的animationlistener,每次它循环调用onAnimationRepeat函数都很重要。Android动画速度太慢

这一切都适用于设置为〜100ms或更高的动画持续时间。我设置的任何较小值(例如30ms)仍然似乎在100ms左右。我在设备和仿真器上试过这个。

我正在使用Alphaanimation,但我也尝试过其他类型的android动画。

有没有办法使任何动画能够正常工作,持续时间大约为50ms或更快?

回答

3

与其他“滑动”动画相比,AlphaAnimation相当资源密集的动画。

您可以尝试使用TraceView进行调查,以确切查看挂断的位置。

我怀疑它只是动画的开销,会放慢一切。

给TraceView一个镜头,报告结果,我会看看是否可以给出进一步的建议。

希望这会有所帮助!

+0

谢谢你的提示。 AlphaAnimation在性能上似乎比其他的更重要。我将其改为ScaleAnimation,现在它稍微好一点,但仍然不如我需要的那样快。然后我创建了一个fakeAnimation类,扩展了Animation,完全没有什么,即使如此,animationlistener也没有像我以** .setduration **设置间隔那样快。 – UncleIstvan

+0

您是否尝试使用TraceView查看每种方法需要多长时间?这可能是因为您每次都在实例化Animation/AnimationFactory。如果您要一遍又一遍地重复执行某些操作,并且每次都重新启动动画,而不是创建一个新的动画,那么在性能方面更好(尽管您需要小心),以便使用单个控制器。 – Codeman

0

我知道这是旧的,但对于像我现在一样使用谷歌搜索的人。

尝试加入到这个动画XML:

机器人:插值=“@安卓:动画/ accelerate_decelerate_interpolator”

纠正我,如果我错了,但我认为它同时适用于翻译和Alpha

例子:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate android:fromXDelta="0" android:toXDelta="100%p" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    android:duration="300"/> 
</set>