Android 动画机制

逐帧动画 Frame Animation

xml资源方式实现:将每一帧图片存放在 res/drawable  通过 res/anim 

代码方式实现:通过AnimationDrawable

补间动画 Tween Animation  对目标定义动画开发和结束这两个关键帧的动画

包括四个效果:透明Alpha ,大小变化Scale ,位移变化Translate ,旋转变化Rotate

插值器 Interpolator

interpolator 负债控制动画的变化速度,实现上面四种效果能够均速,加速,减速,抛物线多种速度变化效果

Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。

145651_72l0_2363160.png

  1.   AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速
  2.   AccelerateInterpolator  在动画开始的地方速率改变比较慢,然后开始加速
  3.   AnticipateInterpolator 开始的时候向后然后向前甩
  4.   AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
  5.   BounceInterpolator   动画结束的时候弹起
  6.   CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
  7.   DecelerateInterpolator 在动画开始的地方快然后慢
  8.   LinearInterpolator   以常量速率改变
  9.   OvershootInterpolator    向前甩一定值后再回到原来位置

Animation 动画类型

四种类型组成:

XML中

alph渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果

JavaCode中

AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果

Android动画模式

Animation主要有两种动画模式:

一种是tweened animation(渐变动画)

XML中JavaCode
alphaAlphaAnimation
scaleScaleAnimation

一种是frame by frame(画面转换动画) 

XML中JavaCode
translateTranslateAnimation
rotateRotateAnimation

Anroid属性动画 Property Animation

属性动画通过修改物件的属性值以达到动画效果。

类名用途
ValueAnimator属性动画主要的计时器,也计算动画后的属性的值,动画的执行类
ObjectAnimator  ValueAnimator的一个子类,允许你设置一个目标对象和对象的属性进行动画,动画的执行类
AnimatorSet提供组织动画的结构,使它们能相关联得运行,用于控制一组动画的执行
AnimatorInflater 用户加载属性动画的xml文件
Evaluators 属性动画计算器,告诉了属性动画系统如何计算给出属性的值
Interpolators动画插入器,定义动画的变化率

 上面几个重要类之间的关系如下图所示:

ObjectAnimator  相关属性设置:

  1. duration 表示动画执行的时间
  2. propertyName 表示修改的物件的哪个属性值,这里是透明度
  3. valueFrom 表示从哪个状态值开始动画
  4. valueTo 表示到哪个状态值结束动画
  5. valueType 类型估值,主要用于设置动画操作属性的值
  6. repeatMode 表示重复的模式 reverse表示
  7. repeatCount 动画重复的计数,动画将会执行该值+1次
  8. repeatMode 动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。restart为重新执行,方向不变
  9. startOffset, 动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,单位毫秒 
  10. interpolator 指定动画插入器

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2363160/blog/1576703

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值