2013-11-15 35 views
0

rotate_x.xml:Android的:獲取動畫持續時間代碼

<?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持續時間。

回答

0

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

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

的Javadoc說:

計算在整個動畫可以持續多久,以毫秒爲單位的提示。可以編寫動畫來使自己的運行持續時間不同於此處計算的持續時間,但通常這應該是準確的。