android 插补器Interpolator的使用




今天,简单讲讲android如何使用Interpolator。


其实很简单,之前在看别人的博客时,看到别人使用Interpolator,居然不知道只有的Interpolator是什么作用,所以在网上查找了资料,这里记录一下。


动画的基本原理是从开始时间到结束时间一帧一帧的播放静态图像。Interpolator插值器来指定动画如何变化的东东。Interpolator本质上讲是一种数学函数,参数是0.0到1.0之间的浮点数,输出值也是0.0到1.0的浮点数,曲线的斜率是速度。


先来张用了12不同插补器的效果图:

这里写图片描述

图中的序号和下面插入器的序号一致,以方便对照效果选择

1:AccelerateDecelerateInterpolator 加速减速插补器(先慢后快再慢)
2:AccelerateInterpolator 加速插补器(先慢后快)
3:AnticipateInterpolator 向前插补器(先往回跑一点,再加速向前跑)
4:AnticipateOvershootInterpolator 向前向后插补器(先往回跑一点,再向后跑一点,再回到终点)
5:BounceInterpolator 反弹插补器(在动画结束的时候回弹几下,如果是竖直向下运动的话,就是玻璃球下掉弹几下的效果)
6:CycleInterpolator 循环插补器(按指定的路径以指定时间(或者是偏移量)的1/4、变速地执行一遍,再按指定的轨迹的相反反向走1/2的时间,再按指定的路径方向走完剩余的1/4的时间,最后回到原点。假如:默认是让a从原点往东跑100米。它会先往东跑100米,然后往西跑200米,再往东跑100米回到原点。可在代码中指定循环的次数)
7:DecelerateInterpolator 减速插补器(先快后慢)
8:LinearInterpolator 直线插补器(匀速)
9:OvershootInterpolator 超出插补器(向前跑直到越界一点后,再往回跑)
10:FastOutLinearInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢慢快
11:FastOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢快慢
12:LinearOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 快慢慢


使用方法一:通过xml文件来设置

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:interpolator="@android:anim/accelerate_interpolator">//对当前动画设置插补器
    <translate
        android:duration="2000"
        android:fromXDelta="50%"
        android:fromYDelta="0%"
        android:interpolator="@android:anim/accelerate_interpolator"// 对当前节点设置插补器
        android:toXDelta="500%"
        android:toYDelta="0%" />
</set>


使用方法二:在代码中设置

Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.xxx);//引用动画文件
mAnimation.setInterpolator(new AccelerateDecelerateInterpolator());//代码设置插补器
view.startAnimation(mAnimation);


10:FastOutLinearInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢慢快
11:FastOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢快慢
12:LinearOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 快慢慢

这三个插补器Interpolator是新加入的,效果和前面的可能有相同的部分。


简单讲讲,插补器Interpolator就是规定动画如何运行,是先快后慢,还是先慢后快。具体的网上有很多例子,大家有兴趣可以查找资料。


android 插补器Interpolator的使用就讲完了。


就这么简单。



猜你喜欢

转载自blog.csdn.net/bzlj2912009596/article/details/80102504