1.为什么要引入属性动画?
它其实是对补间动画的一个加强,可以对控件的属性进行
2.动画分为几类?
分为三大类:补间动画,逐帧动画,属性动画
3.属性动画和补间动画的区别:
1).补间动画改变的对象只能是View,只能改变"alpha","rotate","scale","translate"四个属性
2).属性动画:可自定义各种动画效果,不再局限于4种基本变换:平移、旋转、缩放 、透明度(也可以对非view对象使用属性动画)。
4.属性动画重要的类:ValueAnimator类 ObjectAnimator类
1).ValueAnimator 类 :通过不断控制值的变化和手动赋给对象的属性,实现动画效果,提供初始值、结束值、播放次数、播放模式、对动画设置监听器
2).setRepeatCount():循环播放次数
setRepeatMode():循环播放模式
3).模式分为:RESTART:重新播放
REVERSE:倒序播放
4).ObjectAnimator:可以对任意对象的属性进行动画操作
objani.ofFloat(控件,"alpha",1f,0f,1f) .setDuration()设置时长
.start()动画开始
5).ValueAnimator的动画监听:
addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float currentValue = (float) animation.getAnimatedValue();
Log.d("TAG", "cuurent value is " + currentValue);
}
});
6).Animator监听(通用的监听方法)
addListener(new AnimatorListener());其中有四个方法
onAnimationStart():开始执行
onAnimationRepeat():重复执行
onAnimationEnd():结束执行
onAnimationCancel():取消执行
7).只监听addListener()的其中一个方法:
animation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
}
});
5.AnimatorSet:实现组合动画的效果
AnimatorInflater的loadAnimator可以加载XML动画文件