动画
类型
-
逐帧动画(frame-by-frame animation)
-
补间动画(tweened animation)
-
属性动画(property animation)
逐帧动画(frame-by-frame animation)
帧动画非常容易理解,其实就是简单的由N张静态图片收集起来,然后我们通过控制依次显示 这些图片,因为人眼"视觉残留"的原因,会让我们造成动画的"错觉",跟放电影的原理一样!
而Android中实现帧动画,一般我们会用到13种Drawable中的一种:AnimationDrawable 先编写好Drawable,然后代码中调用start()以及stop()开始或停止播放动画~
动画的启动和停止
// 获取动画的 Drawable 资源 AnimationDrawable anim = (AnimationDrawable) relativeLayout.getBackground(); // 启动动画 anim.start(); // 停止动画 anim.stop();
补间动画(tweened animation)
补间动画(Tween),和前面学的帧动画不同,帧动画 是通过连续播放图片来模拟动画效果,而补间动画开发者只需指定动画开始,以及动画结束"关键帧", 而动画变化的"中间帧"则由系统计算并补齐!
-
alpha 透明度渐变
属性介绍
fromAlpha :起始透明度 toAlpha:结束透明度 透明度的范围为:0-1,完全透明-完全不透明
-
rotate 旋转
fromDegrees/toDegrees:旋转的起始/结束角度 repeatCount:旋转的次数,默认值为0,代表一次,假如是其他值,比如3,则旋转4次 另外,值为-1或者infinite时,表示动画永不停止 repeatMode:设置重复模式,默认restart,但只有当repeatCount大于0或者infinite或-1时 才有效。还可以设置成reverse,表示偶数次显示动画时会做方向相反的运动!
-
scale 缩放渐变
fromXScale/fromYScale:沿着X轴/Y轴缩放的起始比例 toXScale/toYScale:沿着X轴/Y轴缩放的结束比例 pivotX/pivotY:缩放的中轴点X/Y坐标,即距离自身左边缘的位置,比如50%就是以图像的 中心为中轴点
-
translate 平移渐变
fromXDelta/fromYDelta:动画起始位置的X/Y坐标 toXDelta/toYDelta:动画结束位置的X/Y坐标
-
AnimationSet(组合渐变)
非常简单,就是前面几个动画组合到一起而已~