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对象实现移动效果

android tween补间动画_第1张图片

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对象实现缩放操作

android tween补间动画_第2张图片

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对象实现缩放操作

android tween补间动画_第3张图片

5,alpha 透明度

fromDegrees:起始透明度

toDegrees:结束透明度

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

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

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

示例:

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

android tween补间动画_第4张图片

6,同时执行多中效果

需要在set中设置多种效果

android tween补间动画_第5张图片

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

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

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


android tween补间动画_第6张图片

8,自定义动画渲染器

android tween补间动画_第7张图片
android tween补间动画_第8张图片

你可能感兴趣的:(android tween补间动画)