一. 属性组合动画 - Kotlin
val topOffset = DisplayUtil.dip2px(BaseApp.getContext(),60f)
var translationAnimatorSet = AnimatorSet()
var scaleAnimator = ObjectAnimator.ofFloat(mShoppingAnimationView,
"scaleX", 1f, 0f).setDuration(2000L)
var translationAnimator = ObjectAnimator.ofFloat(mShoppingAnimationView,
"translationX", startX, endX).setDuration(2000L)
var translationAnimator2 = ObjectAnimator.ofFloat(mShoppingAnimationView,
"translationY", startY, endY).setDuration(1000L)
translationAnimator2.startDelay = 1000L
var translationAnimator3 = ObjectAnimator.ofFloat(mShoppingAnimationView,
"translationY", startY, startY - topOffset).setDuration(500L)
var translationAnimator4 = ObjectAnimator.ofFloat(mShoppingAnimationView,
"translationY", startY - topOffset, startY).setDuration(500L)
translationAnimator4.startDelay = 500L
var rotationAnimator = ObjectAnimator.ofFloat(mShoppingAnimationView,
"rotation", 0f, 360f * 2).setDuration(2000L)
var scaleAnimatorX = ObjectAnimator.ofFloat(mShoppingAnimationView,
"scaleX", 1f, 1.5f).setDuration(500L)
var scaleAnimatorY = ObjectAnimator.ofFloat(mShoppingAnimationView,
"scaleY", 1f, 1.5f).setDuration(500L)
var scaleAnimatorX2 = ObjectAnimator.ofFloat(mShoppingAnimationView,
"scaleX", 1.5f, 0f).setDuration(1500L)
scaleAnimatorX2.startDelay = 500L
var scaleAnimatorY2 = ObjectAnimator.ofFloat(mShoppingAnimationView,
"scaleY", 1.5f, 0f).setDuration(1500L)
scaleAnimatorY2.startDelay = 500L
translationAnimatorSet.playTogether(scaleAnimator,translationAnimator, translationAnimator2, translationAnimator3, translationAnimator4,
rotationAnimator, scaleAnimatorX, scaleAnimatorY, scaleAnimatorX2, scaleAnimatorY2)
translationAnimatorSet.start()