Android动画系列:
- 补间动画详解
- 帧动画
- LayoutAnimation
- LayoutTransition
- 属性动画 - 基本使用
- 属性动画 - Interpolator(内插器)
- 属性动画 - TypeEvaluator
- 属性动画 - Keyframe
- AnimatorSet
介绍
在Android之补间动画详解已经了解到,View Animation通过重绘View的视图的方式来完成View的动画效果,但View对象本身没有改变。在Android 3.0(API 11),对View添加了新属性和相应的get()和set(),通过在调用set方法设置属性时,其属性更改时会自动调用invalidate()方法来刷新屏幕。
view用拥有set()方法的属性列表:
属性 | 描述 |
---|---|
translationX / translationY/ translationZ | 这两个属性控制了View所处的位置,它们的值是由layout容器设置的,是相对于坐标原点(0,0左上角)的一个偏移量。translationX和 translationY表示水平方向,translationZ为垂直方向(API 21新添加) |
rotation,rotationX和rotationY | 控制View绕着轴点(pivotX和pivotY)旋转 |
scaleX和scaleY | 控制View基于pivotX和pivotY的缩放。 |
pivotX和pivotY | 旋转的轴点和缩放的基准点,默认是View的中心点 |
x / y / Z | 用于在其容器中描述视图的最终位置,作为左值和顶值以及translationX和translationY值的和。z为view的高度属性 |
alpha | 表示view的透明度。默认情况下,此值为1(不透明),值为0表示完全透明(不可见) |
属性动画可以通过更改View的属性,重绘View,更改属性后自动调用invalidate()方法来刷新屏幕,以完成动画效果。
动画特征
- Duration:动画执行时间,默认时间为300 ms
- TimeInterpolator :时间插值,用于计算指定属性的值在当前动画的执行时间
- Repeat count and behavior:重复次数、以及重复模式;可以定义重复多少次;重复时从头开始,还是反向。
- Animator Sets:动画集合,可以定义一起播放或顺序播放或在指定延迟后播放,
- Frame refresh delay:帧刷新延迟,对于定义的动画,多久刷新一次帧;默认为10ms,但最终依赖系统的当前状态及系统底层定时器所提供的服务。
相关类
- ValueAnimator:值动画执行类,常配合AnimatorUpdateListener使用
- ObjectAnimator:对象动画执行类。
- TimeInterpolator:定义动画插值器
- TypeEvaluator:类型估值,用于设置复杂的动画操作属性的值
- PropertyValuesHolder : 属性存储器,为两个执行类提供更新多个属性的功能
- Keyframe :为 PropertyValuesHolder提供多个关键帧的操作值
- AnimatorSet :一组动画的执行集合类:设置执行的先后顺序,时间等
- AnimatorUpdateListener :动画更新监听
- AnimatorListener :动画执行监听,在动画开始、重复、结束、取消时进行回调。
- AnimatorInflater :加载属性动画的xml文件。
常见的插值器
Interpolator对象 | 资源ID | 功能作用 |
---|---|---|
AccelerateDecelerateInterpolator | @android:animaccelerate_decelerate_interpolator | 先加速再减速 |
AccelerateInterpolator | @android:anim/accelerate_interpolator | 加速 |
AnticipateInterpolator | @android:anim/anticipate_interpolator | 先回退一小步然后加速前进 |
AnticipateOvershootI |