因为这两周在外面实训,所以很少有更新文章了,新的知识也没有心思再去学习了,所以就决定回顾温习一下以前学习过的知识。虽然这两天实训做的是用C语言做游戏,但是发现有些写代码的思想还是很值得我们借鉴的,而且还可以锻炼我们的思维,所以说无论我们做什么事情都是对我们有所提高的。
好啦,扯皮到此结束哈哈,下面进入正题。
属性动画中对应的两个大类:ObjectAnimator和ValueAnimator。有的朋友之前用过这两个类,其实如果仔细观察的话,会发现他们两个是继承关系(ValueAnimator继承ObjectAnimator)。
今天给大家带来的文章是关于属性动画中的其中一个类——ValueAnimator。
目录
ValueAnimator原理
在上面我们也提到了,ValueAnimator是属性动画中的其中一个类,根据他的名字也可以看出来,他是对值进行操作的一个类。在它内部有一个循环机制,我们只需要添加起始值、结束值和时长,在内部的循环机制会根据这三个值来进行起始到结束的动画过渡。
简单来说就是我们给ValueAnimator分配三个属性:起始值、结束值、动画时长,一旦启动了这个动画,ValueAnimator内部会不断地循环来获取每一时刻的属性值。我们可以根据获取到的数值进行一系列操作。
常用方法
//设置属性值
public void setFloatValues(float... values);
public void setIntValues(int... values);
public void setObjectValues(Object... values);
public void setValues(PropertyValuesHolder... values);
public void start();//启动动画
public void cancel();//取消动画
public void pause();//暂停动画
public void end();//结束动画
public void resume();//继续动画
public void reverse();//反向播放动画
public ValueAnimator setDuration(long duration);//设置动画时间
public void setRepeatCount(int value);//设置动画重复的次数
public void setRepeatMode(@RepeatMode int value);//设置动画重复模式:正向播放和反向播放
public void setEvaluator(TypeEvaluator value);//设置估值器
public void setInterpolator(TimeInterpolator value);//设置插值器(这两个后面再讲)
创建方法
一般情况下我们都是通过new创建对象,对于ValueAnimator(还有ObjectAnimator)而言,创建动画实例对象是通过ValueAnimator提供的有参工厂去创建动画实例:
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0f,50f,200f);
上面是通过ofFloat创建的实例对象,0、50、200对应的都是float类型的数据