android tween补间动画

如果动画中的图像变化比较有规律时,可以采用自动生成中间图像的方式来生成图像,例如图像的移动,旋转,缩放等再比如有正方形变成圆形,圆形变椭圆形,都可以根据数学公式算法自动生成,我们只需要指定动画的第一帧和最后一帧即可,这种自动生成中间图像的动画称为补间动画。

优点:节省硬盘空间,因为只需提供第一帧和最后一帧

缺点:动画很复杂时无法自动生成中间图像,例如电影画面组成的动画,每一帧过于复杂,这就需要使用Framz帧动画来完成

补间动画定义在res/anim文件夹中

1,动画加载AnimationUtils

用到了android.view.animation.AnimationUtils类来装载动画

Animation animation_translate = AnimationUtils.loadAnimation(this, R.anim.anim_translate);第二个参数标示要加载的动画文件

2,translate 平移

fromXDelta:动画起始位置的横坐标

toXDelta:动画结束位置的横坐标

fromYDelta:动画起始位置的纵坐标

toYDelta:动画结束位置的纵坐标

duration:动画持续时间,单位毫秒,动画从起始到结束的时间

repeatCount: 动画播放次数,默认0,可以设置infinite或-1

repeatMode:重复模式,默认restart,该属性只有当repeatCount设置成大于0或者infinite时起作用,还有个值是reverse,标示偶数次显示动画与定义的动画效果相反,比如动画缩小,但是在2,4,6等偶数时动画实现相反的操作,既动画执行放大操作。

interpolator:动画渲染器,共有三个动画渲染器:

accelerate_interpolator:动画加速器

decelerate_interpolator:动画减速器

cycle_interpolator:震动渲染器

accelerate_decelerate_interpolator:动画加速减速器,动画开始前半部分最快,动画后半部分最慢

示例:

除了使用下面这种方式,还可以在Java中使用android.view.animation.TranslateAnimation对象实现移动效果

3,scale  缩放

fromXScale:沿着x轴缩放的起始比例

toXScale:沿着x轴缩放的结束比例

fromYScale:沿着y轴缩放的起始比例

toYScale:沿着y轴缩放的结束比例

pivotX:沿x轴方向缩放的支点位置,50%则表示在x轴方向的中心位置

pivotY:沿y轴方向缩放的支点位置,50%则表示在y轴方向的中心位置

duration:动画持续时间,单位毫秒,动画从起始到结束的时间

repeatCount:动画播放次数,默认0,可以设置infinite或-1

repeatMode:重复模式,默认restart,该属性只有当repeatCount设置成大于0或者infinite时起作用,还有个值是reverse,标示偶数次显示动画与定义的动画效果相反,比如动画缩小,但是在2,4,6等偶数时动画实现相反的操作,既动画执行放大操作。

注意:

前四个属性的取值如下:

0.0 表示收收缩到没有

1.0表示正常不收缩

大于1.0 表示将组件放大到相应的比例,如1.5 表示放大到原组件的1.5倍

小于1.0 表示将组件缩小到相应的比例,如0.5 表示缩小到原组件的0.5倍

示例:

还可以在java中使用android.view.animation.ScaleAnimation对象实现缩放操作

4,rotate 旋转

fromDegrees:旋转的起始角度

toDegrees:旋转的结束角度

pivotX:沿x轴方向旋转的支点位置,50%则表示在x轴方向的中心位置

duration:动画持续时间,单位毫秒,动画从起始到结束的时间

repeatCount:动画播放次数,默认0,可以设置infinite或-1

repeatMode:重复模式,默认restart,该属性只有当repeatCount设置成大于0或者infinite时起作用,还有个值是reverse,标示偶数次显示动画与定义的动画效果相反,比如动画缩小,但是在2,4,6等偶数时动画实现相反的操作,既动画执行放大操作。

示例:

还可以在java中使用android.view.animation.RotateAnimation对象实现缩放操作

5,alpha 透明度

fromDegrees:起始透明度

toDegrees:结束透明度

duration:动画持续时间,单位毫秒,动画从起始到结束的时间

repeatCount:动画播放次数,默认0,可以设置infinite或-1

repeatMode:重复模式,默认restart,该属性只有当repeatCount设置成大于0或者infinite时起作用,还有个值是reverse,标示偶数次显示动画与定义的动画效果相反,比如动画缩小,但是在2,4,6等偶数时动画实现相反的操作,既动画执行放大操作。

示例:

还可以在java中使用android.view.animation.AlphaAnimation对象实现缩放操作

6,同时执行多中效果

需要在set中设置多种效果

7,监听一个动画执行的状态

实现AnimationListener接口,需要实现三个方法

setAnimationListener();给动画设置监听对象,


8,自定义动画渲染器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Animation Animation类是所有动画(scale、alpha、translate、rotate)的基...
    四月一号阅读 1,942评论 0 10
  • 1.1帧动画概念以及用法 帧动画非常容易理解,其实就是简单的由N张静态图片收集起来,然后我们通过控制依次显示 这些...
    侯蛋蛋_阅读 585评论 0 1
  • 前言 在学习了Android的动画之后,简单总结了一下,看完这篇文章就可以自己动手写一个简单的动画了 正文 An...
    墨月城汐阅读 1,499评论 0 5
  • 1 背景 不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今...
    未聞椛洺阅读 2,771评论 0 10
  • 天行健,君子以自强不息;地势坤,君子以厚德载物。 时间一天一天过去,灰色阶段,悲伤的一切随着时间一点一点的消逝,日...
    94Dboy阅读 338评论 0 0