Android 旋转、平移、缩放和透明度渐变的补间动画

本文详细介绍了Android中四种补间动画:透明度渐变动画、旋转动画、缩放动画和平移动画。每种动画都包括关键属性介绍及其作用,帮助开发者更好地理解和应用这些动画效果。

补间动画就是通过对场景里的对象不断进行图像变化来产生动画效果。在实现补间动画时,只需要定义开始和结束的“关键帧”,其他过渡帧由系统自动计算并补齐。在Android中,提供了以下4种补间动画。

1. 透明度渐变动画

透明度渐变动画就是通过View组件透明度的变化来实现View的渐隐渐显的效果。它主要通过为动画指定开始时的透明度和结束时的透明度,以及维持时间来创建动画。

表1 定义透明度渐变动画时常用的属性
属性描述
android:interpolator用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值如表2所示
android:repeatMode用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount用于设置动画的重复次数,属性可以是代表次数的数值,也可以是infinite(无限循环)
android:duration用于指定动画的持续时间,单位为毫秒
android:fromAlpha用于指定动画开始时的透明度,值为0.0代表完全透明,值为1.0代表完全不透明
android:toAlpha用于指定动画结束时的透明度,值为0.0代表完全透明,值为1.0代表完全不透明
表2 android:interpolator属性的常用属性值
属性值描述
@android:anim/linear_interpolator动画一直在做匀速改变
@android:anim/accelerate_interpolator动画在开始的地方改变较慢,然后开始加速
@android:anim/decelerate_interpolator在动画开始的地方速度改变较快,然后开始
@android:anim/accelerate_decelerate_interpolator动画在开始和结束的地方改变速度较慢,在中间的时候加速
@android:anim/cycle_interpolator动画循环播放特定的次数,变化速度按正弦曲线改变
@android:anim/bounce_interpolator动画结束的地方采用弹球效果
@android:anim/anticipate_overshoot_interpolator在动画开始的地方先向后退一小步,再开始动画,到结束的地方再超出一小步,最后回到动画结束的地方
@android:anim/overshoot_interpolator动画快速到达终点,并超出一小步最后回到动画结束的地方
@android:anim/anticipate_interpolator在动画开始的地方先向后退出一小步,再快速到达动画结束的地方
2. 旋转动画

旋转动画就是通过为动画指定开始时的旋转角度、结束时的旋转角度,以及持续时间来创建动画。在旋转时还可以通过指定轴心点坐标来改变旋转的中心。

属性描述
android:interpolator用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值如表2所示
android:fromDegrees用于指定动画开始时旋转的角度
android:toDegrees用于指定动画结束时旋转的角度
android:pivotX用于指定轴心点x轴的坐标
android:pivotY用于指定轴心点y轴的坐标
android:repeatMode用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount用于设置动画的重复次数,属性可以是代表次数的数值,也可以是infinite(无限循环)
android:duration用于指定动画的持续时间,单位为毫秒
3. 缩放动画

缩放动画就是通过为动画指定开始时的缩放系数、结束时的缩放系数,以及持续时间来创建动画。在缩放时还可以通过指定轴心点坐标来改变缩放的中心。

属性描述
android:interpolator用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值如表2所示
android:fromXScale用于指定动画开始时水平方向上的缩放系数,值为1.0表示不变化
android:toXScale用于指定动画结束时水平方向上的缩放系数,值为1.0表示不变化
android:fromYScale用于指定动画开始时垂直方向上的缩放系数,值为1.0表示不变化
android:toYScale用于指定动画结束时垂直方向上的缩放系数,值为1.0表示不变化
android:pivotX用于指定轴心点x轴的坐标
android:pivotY用于指定轴心点y轴的坐标
android:repeatMode用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount用于设置动画的重复次数,属性可以是代表次数的数值,也可以是infinite(无限循环)
android:duration用于指定动画的持续时间,单位为毫秒
4. 平移动画

平移动画就是通过为动画指定开始时的位置、结束时的位置,以及持续的时间来创建动画。

属性描述
android:interpolator用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值如表2所示
android:fromXDelta用于指定动画开始时水平方向上的起始位置
android:toXDelta用于指定动画结束时水平方向上的起始位置
android:fromYDelta用于指定动画开始时垂直方向上的起始位置
android:toYDelta用于指定动画结束时垂直方向上的起始位置
android:repeatMode用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount用于设置动画的重复次数,属性可以是代表次数的数值,也可以是infinite(无限循环)
android:duration用于指定动画的持续时间,单位为毫秒
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值