2013-11-15 1 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

Вы можете использовать метод computeDurationHint() из класса Animation.

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

Javadoc говорит:

Compute намек на то, как долго вся анимация может продолжаться, в миллисекундах. Анимации могут быть записаны, чтобы заставить себя работать на разную продолжительность, чем то, что здесь вычисляется, но в целом это должно быть точным.

Смежные вопросы