Android动画系列(二) - 插值器效果

本文详细介绍了Android中动画插值器的种类及其对动画效果的影响,并提供了AccelerateDecelerateInterpolator、AccelerateInterpolator等9种插值器的示例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面讲了基础动画的ViewAnimation的所有动画实现形式,xml和java代码实现。不过谷歌还提供了一个不错的效果,那就是插值器。不同的插值器对展现的动画效果有较大的影响。

这里写图片描述

设置interpolator,也就是让动画按照设定的模式去运行。Interpolator原有的属性:

这里写图片描述

class就是java对应的类,Resource ID 是在XML中使用的。interpolator 属性属于Animation基础类,所以Scale,Translate,Rotate,alpha都可以设置自己的interpolator属性。意义如下(摘抄自启航的文章):

  • AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速

  • AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速

  • AnticipateInterpolator 开始的时候向后然后向前甩

  • AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值

  • BounceInterpolator 动画结束的时候弹起

  • CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线

  • DecelerateInterpolator 在动画开始的地方快然后慢

  • LinearInterpolator 以常量速率改变

  • OvershootInterpolator 向前甩一定值后再回到原来位置

下面看看各个标签在应用上面的每个插值器后会运动轨迹会怎样。
那么久看看各个插值器的动画效果。

  1. AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速

这里写图片描述

2.DecelerateInterpolator 在动画开始的地方快然后慢

这里写图片描述

3.AnticipateInterpolator 开始的时候向后然后向前甩

这里写图片描述

4.AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速

这里写图片描述

5.AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值

这里写图片描述

6.BounceInterpolator 动画结束的时候弹起

这里写图片描述

7.CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线

这里写图片描述

8.LinearInterpolator 以常量速率改变

这里写图片描述

9.OvershootInterpolator 向前甩一定值后再回到原来位置

这里写图片描述

谷歌提供的API中interpolator就这么多,基本动画效果也给上了。怎么使用的话很简单。xml直接设置interpolator的属性,而java类Animation直接设置setInterpolator(插值器对象)就OK了。
xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXDelta="0"
        android:fromYDelta="100%"
        android:toYDelta="-200%"
        android:duration="3000"
        >

    </translate>
</set>

而java代码中:

 animation.setInterpolator(new AccelerateInterpolator());

这样就搞定了,是不是很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值