属性动画的一些说明
2016-01-28 16:08
197 查看
属性动画的一些说明:
1. ObjectAnimator 对象动画,当一个view同时拥有某一属性的getter、setter方法时,则可以使用该动画,来操作这一属性。
2. ValueAnimator 操作的范围比较广,通过Interpolator和TypeEvaluator得到某一时间内的值;再用监听器,监听值的变化,做相应的操作。
3. ValueAnimator 和ObjectAnimator(它是前者的子类)的静态的一些of方法,创建自身对象。
也可以new 一个无参的对象,再设置相应的values。
ofInt()、ofFloat()、ofObject()、ofPropertyValuesHolder()。
这几个方法的实现也就是new 一个无参的对象,再设置相应的values。
4. ValueAnimator 的调用流程:
a. 初始化ValueAnimator后,设置一个values。这时就有了一个PropertyViewHolder对象pvh。
可以直接调用setValues设置它PVH对象;或setInt|Float|ObjectValues
方法内部会生成一个PVH
PVH内部维护一个KeyframeSet和TypeEvaluator。PVH根据不同的values来初始化KeyframeSet和
TypeEvaluator实现方法中的startValue和endValue就从KeyframeSet中的Keyframe中获取
b. 设置TypeEvaluator,传递到pvh中。
c. 设置Interpolator。 ValueAnimator中默认的插入器为AccelerateDecelerateInterpolator
d. ValueAnimator的animationFrame(long currentTime),当有动画应该结束时返回true,否则返回false。
方法内,算出动画运行的时间比率fraction,再调用animateValue(float fraction)。
e. ValueAnimator的animateValue(float fraction),调用插入器,得到一个按某一规则得到的fraction,
再调用 pvh.calculateValue(fraction);pvh调用KeyframeSet的getValue(fraction);
KeyframeSet内部再调用TypeEvaluator的evaluate(fraction,T startValue, T endValue)。
startValue、endValue是通过Keyframe的getValue()来获取的。
f. evaluate(),方法内拿到了时间比率fraction,可以自行根据一定规则,返回value T。
g. 给ValueAnimator添加一个AnimatorUpdateListener。监听的回调方法:
onAnimationUpdate(ValueAnimator animation) {
T obj = (T)animation.getAnimatedValue();//取得计算器计算出的某段时间内的T值。
// 操作 obj
}
1. ObjectAnimator 对象动画,当一个view同时拥有某一属性的getter、setter方法时,则可以使用该动画,来操作这一属性。
2. ValueAnimator 操作的范围比较广,通过Interpolator和TypeEvaluator得到某一时间内的值;再用监听器,监听值的变化,做相应的操作。
3. ValueAnimator 和ObjectAnimator(它是前者的子类)的静态的一些of方法,创建自身对象。
也可以new 一个无参的对象,再设置相应的values。
ofInt()、ofFloat()、ofObject()、ofPropertyValuesHolder()。
这几个方法的实现也就是new 一个无参的对象,再设置相应的values。
4. ValueAnimator 的调用流程:
a. 初始化ValueAnimator后,设置一个values。这时就有了一个PropertyViewHolder对象pvh。
可以直接调用setValues设置它PVH对象;或setInt|Float|ObjectValues
方法内部会生成一个PVH
PVH内部维护一个KeyframeSet和TypeEvaluator。PVH根据不同的values来初始化KeyframeSet和
TypeEvaluator实现方法中的startValue和endValue就从KeyframeSet中的Keyframe中获取
b. 设置TypeEvaluator,传递到pvh中。
c. 设置Interpolator。 ValueAnimator中默认的插入器为AccelerateDecelerateInterpolator
d. ValueAnimator的animationFrame(long currentTime),当有动画应该结束时返回true,否则返回false。
方法内,算出动画运行的时间比率fraction,再调用animateValue(float fraction)。
e. ValueAnimator的animateValue(float fraction),调用插入器,得到一个按某一规则得到的fraction,
再调用 pvh.calculateValue(fraction);pvh调用KeyframeSet的getValue(fraction);
KeyframeSet内部再调用TypeEvaluator的evaluate(fraction,T startValue, T endValue)。
startValue、endValue是通过Keyframe的getValue()来获取的。
f. evaluate(),方法内拿到了时间比率fraction,可以自行根据一定规则,返回value T。
g. 给ValueAnimator添加一个AnimatorUpdateListener。监听的回调方法:
onAnimationUpdate(ValueAnimator animation) {
T obj = (T)animation.getAnimatedValue();//取得计算器计算出的某段时间内的T值。
// 操作 obj
}
相关文章推荐
- HDU 2147 kiki's game
- java.lang.OutOfMemoryError: Java heap space解决方法
- android 实现第一次进入程序的多个引导页
- ubuntu下python3.4安装numpy
- Hadoop 4、Hadoop MapReduce的工作原理
- springmvc利用ResponseBody注解返回HTTP406问题
- 98. Validate Binary Search Tree
- XStream转换xml
- Win7+虚拟机OS X 10.11.3+Xcode7.0.1+未越狱iPhone4+iOS7.1.2真机调试及生成ipa包(2016-1-22 19:09)
- Swift 基本知识点之七类与结构体
- MSSQL和MYSQL数据交互
- 灰色预测模型
- C# 初始winform——1
- Eclipse安装反编译工具JadClipse for Eclipse手把手教程
- InetOrgPerson对象
- java以及C#获取AD域上用户信息
- Tomcat7.0.22在Windows下详细配置过程
- Augular JS里的各种ng
- 设计模式之禅之设计模式-解析器模式
- [设计模式整理笔记 一] 基础知识