属性动画-基本使用
程序员文章站
2022-05-02 22:14:11
...
- 属性动画可以对任意对象的属性进行动画而不仅仅是View,动画默认时间间隔300ms,默认帧率10ms/帧。其可以达到的效果是:在一个时间间隔内完成对象从一个属性值到另一个属性值的改变。
- ValueAnimator、ObjectAnimator和AnimatorSet,其中ObjectAnimator继承自ValueAnimator,AnimatorSet是动画集合,可以定义一组动画
- 下面是简单的平移按钮的动画,通过直接修改translationY的属性以达到平移的效果。
ObjectAnimator.ofFloat(btn, "translationY", 0f, 200f).setDuration(3000).start()
- 改变一个View的背景色属性,开始动画 背景色不断渐变
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()
- AnimatorSet使用
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/目录下
<set
android:ordering=["together" | "sequentially"]>
<objectAnimator
android:propertyName="string"
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<animator
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<set>
...
</set>
</set>
对于一个动画来说,有两个属性这里要特殊说明一下,一个是android:repeatCount,它表示动画循环的次数,默认值为0,其中-1表示无限循环;另一个是android:repeatMode,它表示动画循环的模式,有两个选项:“repeat”和“reverse”,分别表
示连续重复和逆向重复。连续重复比较好理解,就是动画每次都重新开始播放,而逆向重复是指第一次播放完以后,第二次会倒着播放动画,第三次再重头开始播放动画,第四次再倒着播放动画,如此反复。
上一篇: 大众点评爬虫