安卓动画速度太慢

4
我使用了一个INFINITE重复设置的animationlistener,每当循环时都调用onAnimationRepeat函数非常重要。
当动画持续时间设置为约100ms或更高时,所有这些都运行良好。我设置任何较小的值(例如30ms),仍然似乎在100ms左右。我在设备和模拟器上尝试过。
我正在使用Alphaanimation,但我也尝试了其他类型的android动画。
有没有办法使任何动画在设置了约50ms或更快的持续时间时正常工作?
2个回答

4

与其他“滑动”动画相比,AlphaAnimation是一种相当消耗资源的动画。

您可以尝试使用TraceView进行调查,以确定它到底在哪里卡住了。

我怀疑这只是动画开销使一切变慢。

试试TraceView,报告结果,我会看看是否能给出进一步的建议。

希望这有所帮助!


谢谢您的提示。AlphaAnimation似乎比其他动画更耗费性能。我将其更改为ScaleAnimation,现在稍微好一些,但仍然不如我需要的可靠快速。然后,我创建了一个名为fakeAnimation的类,继承自Animation,完全不做任何事情,即使这样,使用setduration设置的间隔也无法触发animationlistener得到快速响应。 - UncleIstvan
1
你尝试使用TraceView查看每个方法需要多长时间了吗?这可能是因为你每次都在实例化Animation/AnimationFactory。如果你要一遍又一遍地执行某些操作而没有重叠,最好从性能上考虑(尽管需要小心),使用单个控制器,并在每次重新启动动画时重新开始动画,而不是创建一个新的动画。 - Codeman

1

我知道这已经过时了,但对于像我现在这样搜索的人来说,请尝试将以下内容添加到动画xml中:

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

如果我错了,请纠正我,但我认为它适用于Translate和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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接