具有两个比例的Android bounce动画

具有两个比例的Android bounce动画,android,android-animation,Android,Android Animation,我想第一个我的布局放大,第二个它应该缩小与反弹。但是这个代码不能正常工作 <set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="sequentially" > <set> <scale android:duration="400" android:fromXScale="1.0" android:fro

我想第一个我的布局放大,第二个它应该缩小与反弹。但是这个代码不能正常工作

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially" >
<set>
    <scale
        android:duration="400"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.2"
        android:toYScale="1.2" />
</set>

<set android:interpolator="@android:anim/bounce_interpolator" >
    <scale
        android:duration="800"
        android:fromXScale="1.2"
        android:fromYScale="1.2"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
</set></set>

我对object animator了解不多,但我使用属性动画进行了多次缩放,效果很好!这是密码

    AnimatorSet set = new AnimatorSet(); //this is your animation set. 
    //add as many Value animator to it as you like

    ValueAnimator scaleUp = ValueAnimator.ofFloat(1,(float)1.2);
    scaleUp.setDuration(800);
    scaleUp.setInterpolator(new BounceInterpolator()); //remove this if you prefer default interpolator
    scaleUp.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            Float newValue = (Float) valueAnimator.getAnimatedValue();
            yourView.setScaleY(newValue);
            yourView.setScaleX(newValue);
        }
    });

    ValueAnimator scaleDown = ValueAnimator.ofFloat((float)1.2,1);
    scaleDown.setDuration(800);
    scaleDown.setInterpolator(new BounceInterpolator());
    scaleDown.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            Float newValue = (Float) valueAnimator.getAnimatedValue();
            yourView.setScaleY(newValue);
            yourView.setScaleX(newValue);
        }
    });


    set.play(saceleUp);
    set.play(scaleDown).after(scaleUP);
    set.start();

我对object animator了解不多,但我用属性动画缩放了好几次,效果很好!这是密码

    AnimatorSet set = new AnimatorSet(); //this is your animation set. 
    //add as many Value animator to it as you like

    ValueAnimator scaleUp = ValueAnimator.ofFloat(1,(float)1.2);
    scaleUp.setDuration(800);
    scaleUp.setInterpolator(new BounceInterpolator()); //remove this if you prefer default interpolator
    scaleUp.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            Float newValue = (Float) valueAnimator.getAnimatedValue();
            yourView.setScaleY(newValue);
            yourView.setScaleX(newValue);
        }
    });

    ValueAnimator scaleDown = ValueAnimator.ofFloat((float)1.2,1);
    scaleDown.setDuration(800);
    scaleDown.setInterpolator(new BounceInterpolator());
    scaleDown.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            Float newValue = (Float) valueAnimator.getAnimatedValue();
            yourView.setScaleY(newValue);
            yourView.setScaleX(newValue);
        }
    });


    set.play(saceleUp);
    set.play(scaleDown).after(scaleUP);
    set.start();

(太多的代码,猜猜看)这项任务应该通过动画xml来解决。你可能更喜欢用xml来完成这项任务,但我认为这样做更好,原因有两个。1) 您编写的代码行太多,但代码并不复杂!事实上,如果你学习了基本的价值动画(不到15分钟),你会很舒服!2) 它让你完全控制动画,当动画很复杂的时候,它真的很方便。无论如何,我的观点是,如果你喜欢xml,那就去做吧。双倍缩放怎么样?)太多的代码,猜猜)这项任务应该通过动画xml来解决。你可能更喜欢用xml来完成,但我认为这更好,原因有二。1) 您编写的代码行太多,但代码并不复杂!事实上,如果你学习了基本的价值动画(不到15分钟),你会很舒服!2) 它让你完全控制动画,当动画很复杂的时候,它真的很方便。不管怎样,我的观点是,如果你喜欢xml,那就去做吧。你是用仅限帮助的xml解决这个taks的吗?你是用仅限帮助的xml解决这个taks的吗?