Android:在代码中获取动画持续时间

时间:2013-11-15 08:55:24

标签: android animation android-animation objectanimator

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个持续时间。

1 个答案:

答案 0 :(得分:0)

您可以使用Animation类中的方法computeDurationHint()

long duration = 0;
for(Animation a : yourAnimatorSet.getChildAnimations())
    duration += a.computeDurationHint();

javadoc说:

  

计算整个动画可能持续多长时间的提示,以毫秒为单位。可以编写动画以使其自身运行的持续时间与此处计算的持续时间不同,但通常这应该是准确的。