码迷,mamicode.com
首页 > 其他好文 > 详细

对属性动画ObjectAnimator.ofObject方法的学习和理解

时间:2016-05-12 13:32:33      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

关于对属性动画
ObjectAnimator.ofObject(view, "position", new PointEvaluator(), pStart, pEnd);
方法的学习和理解,做个总结,也当做笔记记在这里,遗忘的时候以便查阅,也希望能帮助正在学习这块知识的同学。


这个方法的主要作用是根据一定的规则对目标对象的某个具体属性进行改变,从而使目标对象实现与该属性相关的动画效果。
参数的讲解:
第一个参数:动画的实施对象
第二个参数:关键词,在动画的实施对象中必须要有一个 "set关键词()"的方法,该关键词也是动画实施对象的一个属性。比如某view有一个setColor()方法,"color"为某view的一个属性。在动画实施过程中,会不停的调用这个set方法给该属性赋新的值。
第三个参数:补间器,实现TypeEvaluator接口,实现evaluate方法,在方法中给出属性改变的具体实现过程,以达到预期动画效果。这个步是整个属性动画的精髓所在,它反映了属性变化的具体过程,也是我们程序员施展自己才华的地方!
第四个参数:属性集合,即属性的开始点,中途变化点,结束点的具体值。是在evaluate方法中计算属性值变化的依据数据。(evaluate方法中有两个参数,一头一尾,如果这里刚好也两个参数则一一对应,但是多个的情况暂时没搞清楚)。

官方文档参数的解释
Parameters
target The object whose property is to be animated. This object should have a public method on it called setName(), where name is the value of the propertyName parameter.
propertyName The name of the property being animated.
evaluator A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values A set of values that the animation will animate between over time.

ValueAnimator.ofObject(evaluator, values)方法参数含义与ObjectAnimator.ofObject(target, propertyName, evaluator, values)中参数基本相同,只是ValueAnimator不指定具体对象,只设置属性值变化过程,更加灵活,使用空间更大一些。

另:附一些常用的属性动画使用方法
旋转动画:
<span style="font-size:14px;"><span style="font-size:18px;">ObjectAnimator animator = ObjectAnimator.ofFloat(textview, "rotation", 0f, 360f);  
animator.setDuration(5000);  
animator.start();  </span></span>
x轴平移动画:
<span style="font-size:14px;"><span style="font-size:18px;">float curTranslationX = textview.getTranslationX();  
ObjectAnimator animator = ObjectAnimator.ofFloat(textview, "translationX", curTranslationX, -500f, curTranslationX);  
animator.setDuration(5000);  
animator.start();  </span></span>
缩放动画:
<span style="font-size:14px;">ObjectAnimator animator = ObjectAnimator.ofFloat(textview, "scaleY", 1f, 3f, 1f);  
animator.setDuration(5000);  
animator.start();  </span>
透明度动画:
ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f);
animator.setDuration(5000);  
animator.start();    
组合动画:
<span style="font-size:14px;"><span style="font-size:18px;">ObjectAnimator moveIn = ObjectAnimator.ofFloat(textview, "translationX", -500f, 0f);  
ObjectAnimator rotate = ObjectAnimator.ofFloat(textview, "rotation", 0f, 360f);  
ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f);  
AnimatorSet animSet = new AnimatorSet();  
animSet.play(rotate).with(fadeInOut).after(moveIn);  
animSet.setDuration(5000);  
animSet.start();  </span></span>


对属性动画ObjectAnimator.ofObject方法的学习和理解

标签:

原文地址:http://blog.csdn.net/chen_zhang_yu/article/details/51366527

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!