动画研究 一
2016-02-26 16:51
246 查看
Android中的动画分为视图动画(View Animation)、属性动画(Property Animation)以及Drawable动画。
视图动画就是很早就已出现被大家所熟知的:translate平移、rotate翻转、alpha透明度渐变、scale缩放、animationset动画组合五大类。而该类视图动画只能用在View上,且xml文件只能放在res/anim下,父类就是Animation。
属性动画后面才出来,主要是ValueAnimator及其子类ObjectAnimator,且xml文件只能放在res/animator下,父类是Animator。与视图动画不同,同样改变一个view,它可以改变view的属性,而视图动画仅仅是一个动画效果。
Interpolator
它是用来控制变化速率的接口,继承关系:
而系统已经实现了的一些速率变化类需要了解这几个:
LinearInterpolator 线性,即匀速变化,加速度为0
AccelerateInterpolator 加速,即加速变化,加速度逐渐增加
DecelerateInterpolator 减速,即减速变化,加速度逐渐减少
AccelerateDecelerateInterpolator 速率变化先加速再减速
BounceInterpolator 类似于一个球落地之后反复弹起直至静止的速率变化
AnticipateInterpolator 先回退一小步,然后再迅速前进
OvershootInterpolator 冲过了头回滚一点
AnticipateOvershootInterpolator 以上两点结合
CycleInterpolator 正弦周期变化
动画的执行全是依靠的handler和runnable来做的,一般不会出现卡帧的情况,一旦出现说明哪里代码有耗时问题。需要提出一点是AnimationSet,它是所有动画的集合,且可以顺序执行,也可以打乱执行。
视图动画就是很早就已出现被大家所熟知的:translate平移、rotate翻转、alpha透明度渐变、scale缩放、animationset动画组合五大类。而该类视图动画只能用在View上,且xml文件只能放在res/anim下,父类就是Animation。
属性动画后面才出来,主要是ValueAnimator及其子类ObjectAnimator,且xml文件只能放在res/animator下,父类是Animator。与视图动画不同,同样改变一个view,它可以改变view的属性,而视图动画仅仅是一个动画效果。
Interpolator
它是用来控制变化速率的接口,继承关系:
abstract public class BaseInterpolator implements Interpolator
Interpolator extends TimeInterpolator
而系统已经实现了的一些速率变化类需要了解这几个:
LinearInterpolator 线性,即匀速变化,加速度为0
AccelerateInterpolator 加速,即加速变化,加速度逐渐增加
DecelerateInterpolator 减速,即减速变化,加速度逐渐减少
AccelerateDecelerateInterpolator 速率变化先加速再减速
BounceInterpolator 类似于一个球落地之后反复弹起直至静止的速率变化
AnticipateInterpolator 先回退一小步,然后再迅速前进
OvershootInterpolator 冲过了头回滚一点
AnticipateOvershootInterpolator 以上两点结合
CycleInterpolator 正弦周期变化
动画的执行全是依靠的handler和runnable来做的,一般不会出现卡帧的情况,一旦出现说明哪里代码有耗时问题。需要提出一点是AnimationSet,它是所有动画的集合,且可以顺序执行,也可以打乱执行。
相关文章推荐
- could not get lock/var/lib/dpkg/lock(ubuntu常见错误)
- 【专题小结】数据结构
- 【机器学习算法】之KNN算法的实现
- js修改时间
- MapReduce中的分布式缓存使用
- Android Intent总结
- 静态分析安全测试(SAST)优缺点探析
- 九度-题目1185--特殊排序
- BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin|贪心|匈牙利
- 简单线性回归
- Android 属性动画(Property Animation)介绍
- poj 3190 Stall Reservations(贪心)
- ios开发根据Label的字体和宽度算出它的高度
- alsa声卡驱动分析总结(一)
- java内存分配和String类型的深度解析
- PHP input 显示html 元素
- HBase shell使用教程
- 改变网络接口速度和协商方式miitool和ethtool
- java中instanceof 关键字
- NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装