Android动画
动画类型
- 视图动画(View Animatio)
- 补间动画(Tween Animation)
- 逐帧动画(Frame Animation)
- 属性动画(Property Anmation)--Android3.0(API 11后的新特性)
视图动画(View Animation)
- 作用对象:视图(View)
- 具体分类:补间动画(Tween Animation) 逐帧动画(Frame Animation)
补间动画
- 简介
- 作用对象:视图控件(View TextView Button),不可作用于View组件的属性,如:颜色、背景等。
- 原理:通过确定开始的视图样式和结束的视图样式,中间变化过程由系统不全来确定一个动画。注:结束的视图样式:平移、缩放、旋转、透明度样式。
- 动画类型:平移动画(Translate)、缩放动画(Scale)、旋转动画(Rotate)、透明度(Alpha)动画。
- 特点:使用简单方便(已经封装好基础动画效果);缺点:仅控制整体实体效果,无法控制属性。
- 应用场景:
- 视图中,标准、基础的动画效果;
- Activity、Fragment的切换效果;
- ViewGroup 中子元素的出场效果;
- 分类
名称 |
原理 |
对应的Animation子类 |
平移动画(Translate) |
移动视图的位置 |
TranslateAnimation类 |
缩放动画(Scale) |
放大、缩小 视图的大小 |
ScalaAnimation类 |
旋转动画(Rotate) |
旋转试图的角度 |
RotateAnimation类 |
透明度动画(Alpha) |
改变视图的透明度 |
AlphaAnimation类 |
逐帧动画
- 简介
- 作用对象:同补间动画
- 原理:将动画拆分为 帧的形式,且定义每一帧=每一张图片
- 特点:优:使用简单、方便;缺点:容易引起oom,因会使用大量&尺寸较大的图片资源
- 应用场景:较为复杂的个性化动画效果。
属性动画
属性动画(Property Animation)是Android3.0(API11)后才提供的一种全新的动画模式
- 作用对象:任意Java对象 不再局限于 视图View对象
- 原理:在一定时间间隔内,通过不断对值进行改变& 不对将该值赋给对象的属性,从而实现对该对象在该属性上的动画效果。可以是任意对象的任意属性
- 特点:作用对象进行了扩展,不只是View对象,甚至无对象也可以,动画效果丰富,不只是4种基本变化,
- 应用场景:与属性相关,更加复杂的动画效果。
- 具体使用:
使用类 |
作用 |
备注 |
ValueAnimator |
先改变值,然后手动赋值给对象的属性从而实现动画(间接 对对象的属性进行操作) |
本质是一种值的操作机制 |
ObjectAnimator |
先改变值,然后自动赋值给对象的属性从而实现动画(直接 对对象的属性进行操作) |
采用get() & set() 进行自动赋值 |
AnimatorSet |
实现组合动画 |
ViewPropertyAnimator |
采用对对象操作 实现属性动画 |
addListener() |
动画监听器,监听动画开始、结束、取消、重复 时刻 |
可采用动画适配器(AnimatorListenerAdapter)按需监听动画时刻 |
区别
两类动画的根本区别在于:是否改变动画本身的属性。