PropertyValuesHolder:类似AnimatorSet,针对同一个对象的多个属性同时作用多种动画。
最后调用ofPropertyValuesHolder实现属性动画的共同作用。
private void propertyValuesHolder() {
PropertyValuesHolder pv1 = PropertyValuesHolder.ofFloat("translationY", 600f);
PropertyValuesHolder pv2 = PropertyValuesHolder.ofFloat("scaleX", 1f, 0, 0.5f);
PropertyValuesHolder pv3 = PropertyValuesHolder.ofFloat("scaleY", 1f, 0, 0.5f);
ObjectAnimator.ofPropertyValuesHolder(mImage, pv1, pv2, pv3).setDuration(1000).start();
}
AnimatorSet:不仅能够实现PropertyValuesHolder的效果,而且可以更精确的控制动画的顺序。
private void animatorSet(){
ObjectAnimator animator1 = ObjectAnimator.ofFloat(mImage,"translationX",600);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(mImage,"translationY",600);
ObjectAnimator animator3 = ObjectAnimator.ofFloat(mImage,"scaleY",1f,0,1f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setDuration(1000);
// animatorSet.playTogether(animator1,animator2,animator3);
// animatorSet.playSequentially(animator1,animator2,animator3);
animatorSet.play(animator1).after(animator2).before(animator3);
animatorSet.start();
}