0

旋转_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在代码中获得持续时间。

4

1 回答 1

1

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

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

javadoc 说:

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

于 2014-06-26T14:55:05.047 回答