[Android动画]属性动画-小球下落动画实现2
2020-04-16 本文已影响0人
qiHuang112
前言
上篇文章通过自定义估值器(TypeEvaluator)的方式模拟了小球下落的过程,这篇文章教你用属性动画中自带的ObjectAnimator实现。
思路
- 通过改变TranslationX和TranslationY的方式模拟小球下落
- 通过插值器interpolator控制小球的加速度。
代码
btn_anim_1.setOnClickListener {
val translationXAnim =
ObjectAnimator.ofObject(view_anim, "TranslationX", FloatEvaluator(), 0f, 600f)
.apply {
duration = 1000
interpolator = LinearInterpolator()
}
val translationYAnim =
ObjectAnimator.ofObject(view_anim, "TranslationY", FloatEvaluator(), 0f, 600f)
.apply {
duration = 1000
interpolator = Interpolator {
it * it
// (it * it - 0.5f * it) * 2
}
}
AnimatorSet().apply {
playTogether(translationXAnim, translationYAnim)
}.start()
}
效果展示


总结
这个代码就比较简洁了,但是可控程度不够高,啥意思呢,就是我不能像估值器那样对小球的状态有完全的掌控,但是实现简单的动画效果已经完全够用了,下篇文章实现了无限跳跃效果。