Android旋转在ObjectAnimator中不起作用

Jon*_*eff 1 android android-animation objectanimator

我使用Animator XML为ImageView设置动画.ImageView应该增长(从0f到1f,Y比X快)并从90°旋转90°到0.我将这个XML文件用于动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:ordering="together">
    <objectAnimator
        android:duration="500"
        android:propertyName="scaleY"
        android:valueFrom="0f"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:valueTo="1f"
        android:valueType="floatType" />

    <objectAnimator
        android:duration="1000"
        android:propertyName="scaleX"
        android:valueFrom="0f"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:valueTo="1f"
        android:valueType="floatType" />

    <objectAnimator
        android:duration="1000"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:interpolator="@android:anim/linear_interpolator"
        android:propertyName="rotate"
        android:valueFrom="90"
        android:valueType="floatType"
        android:valueTo="0" />

</set>
Run Code Online (Sandbox Code Playgroud)

当我使用Animator时

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(this,
                R.animator.login_bubble_animation);
        set.setTarget(mContactBubble);
        set.start();
Run Code Online (Sandbox Code Playgroud)

除旋转之外的所有内容都有效,因此ImageView会增长但不会旋转.我已经习惯了

RotateAnimation rotate = new RotateAnimation(90, 0, Animation.RELATIVE_TO_SELF,
            0.5f,  Animation.RELATIVE_TO_SELF, 0.5f);
    rotate.setDuration(1000);
    mContactBubble.startAnimation(rotate);
Run Code Online (Sandbox Code Playgroud)

哪个确实有效,但如果它在XML文件中,那将是一个优势.

ste*_*cks 5

您的属性字符串名称rotate无效.你需要使用rotation,或者rotationX和/或rotationY,就像你做的那样.http://developer.android.com/guide/topics/graphics/prop-animation.html#views查看可用的属性列表ObjectAnimator

  • 小问题是我们进行代码审查的原因!没有它我会迷失... (3认同)