3.1.1 概述
Animation: · View Animation(视图动画,API Level 1) · Tween Animation(补间动画) · Frame Animation(逐帧动画) · Property Animation(属性动画,API Level 11) · ValueAnimator · ObjectAnimator
视图动画仅能对指定的控件做动画,而属性动画是通过改变控件的某一属性值来做动画的。视图动画还有一个缺陷,就是只能点击原始区域才能响应事件。
3.1.2 ValueAnimator 的简单使用
ValueAnimator 不会对控件执行任何操作,我们可以给它设定从哪个值运动到哪个值,通过监听这些值的渐变过程来使自己操作控件。
示例:
ValueAnimator 只负责对指定值区间进行动画运算,我们需要对运算过程进行监听,然后自己对控件执行动画操作;动画结束后,控件仍然可以响应单击事件。
3.1.3 常用函数
1. ofInt 与 ofFloat
|
|
参数类型都是可变长参数,如上例中的 ofInt(0, 400, 200) 就表示从数字 0 变化到数字 400 再变化到 200。
上例中可以强转为 Integer 是因为使用的是 ofInt 方法设定动画初始值。当使用 ofFloat 函数设定初始值后,则需要强转为 Float 类型。后面介绍的 ofObject 函数也是如此。
2. 常用函数
方法 | 描述 |
---|---|
ValueAnimator setDuration(long duration) | 设置动画时长,单位是毫秒 |
Object getAnimatedValue() | 获取 ValueAnimator 在运动时当前运动点的值 |
void start() | 开始动画 |
void cancel() | 取消动画 |
void setRepeatCount(int value) | 循环次数,ValueAnimator.INFINITE 表示无线循环 |
void setRepeatMode(int value) | 循环模式:ValueAnimator.RESTART、REVERSE |
void setStartDelay(long startDelay) | 延时多久开始,毫秒 |
ValueAnimator clone() | 完全克隆一个 ValueAnimator 示例,包括所有设置和对监听器代码的处理。 |
3. 监听器
1)添加监听器
2)移除监听器
3.1.4 示例:弹跳加载中效果
自定义 LoadingImageView.java
act_main.xml