ObjectAnimator.ofFloat(btn, "translationY", 0f, 200f).setDuration(3000).start()
val colorAnim: ValueAnimator = ObjectAnimator.ofInt(btn, "backgroundColor", Color.BLUE, Color.RED)
colorAnim.duration = 3000
colorAnim.setEvaluator(ArgbEvaluator())
colorAnim.repeatCount = Integer.MAX_VALUE
colorAnim.repeatMode = ValueAnimator.REVERSE
colorAnim.start()
val set = AnimatorSet()
set.playTogether(
ObjectAnimator.ofFloat(btn, "rotationX", 0f, 360f),
ObjectAnimator.ofFloat(btn, "rotationY", 0f, 180f),
ObjectAnimator.ofFloat(btn, "rotation", 0f, -90f),
ObjectAnimator.ofFloat(btn, "translationX", 0f, 90f),
ObjectAnimator.ofFloat(btn, "translationY", 0f, 90f),
ObjectAnimator.ofFloat(btn, "scaleX", 1f, 1.5f),
ObjectAnimator.ofFloat(btn, "scaleY", 1f, 0.5f),
ObjectAnimator.ofFloat(btn, "alpha", 1f, 0.25f, 1f)
)
set.setDuration((5 * 1000).toLong()).start()
属性动画除了通过代码实现以外,还可以通过XML来定义。属性动画需要定义在res/animator/目录下
...
对于一个动画来说,有两个属性这里要特殊说明一下,一个是android:repeatCount,它表示动画循环的次数,默认值为0,其中-1表示无限循环;另一个是android:repeatMode,它表示动画循环的模式,有两个选项:“repeat”和“reverse”,分别表
示连续重复和逆向重复。连续重复比较好理解,就是动画每次都重新开始播放,而逆向重复是指第一次播放完以后,第二次会倒着播放动画,第三次再重头开始播放动画,第四次再倒着播放动画,如此反复。