rotate_x.xml :
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/decelerate_interpolator" >
<objectAnimator
android:valueFrom="180"
android:valueTo="0"
android:propertyName="rotationX"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="1000" >
</objectAnimator>
</set>
下面的代码日志 -1 到 logcat。
Log.e(TAG, "Animation duration : " + ((AnimatorSet) AnimatorInflater.loadAnimator(this, R.anim.rotate_x)).getDuration());
这是为什么呢?如何在代码中获取AnimatorSet
持续时间。
可以使用动画类中computeDurationHint()
的方法。
long duration = 0;
for(Animation a : yourAnimatorSet.getChildAnimations())
duration += a.computeDurationHint();
javadoc 说:
计算整个动画可能持续多长时间的提示(以毫秒为单位)。可以编写动画以使自身运行持续时间与此处计算的持续时间不同,但通常这应该是准确的。