• 几种常用的Interpolator(插值器)的动画效果


    在实现动画的非线性变化的方法中,常用的一种是为动画添加插值器以改变视图的属性值,从而实现理想的动画效果。Interpolator使用相对简单,下面就只给出一些提供的插值器的默认效果。


    在代码中:直接调用setInterpolator(new AccelerateInterpolator());

    在xml中:android:interpolator="@android:anim/accelerate_interpolator"
    如果几个动画共用一个插值器,则:
    android:shareInterpolator="true"
    或者AnimatorSet调用setInterpolator


    一个插值器不仅可以用于位移中,也可用在其他动画或者叠加动画效果中,其变化率如都遵循同一个函数公式。如下为插值器默认的公式,演示的图片由于裁剪问题可能有偏差。

    BounceInterpolator:
    x * x * 8.0,               (x < 0.3535)
    (x-0.54719)* (x-0.54719)* 8+0.7,   (x < 0.7408)
    (x-0.8526)* (x-0.8526)* 8+0.9,    (x < 0.9644)
    (x-1.0435)* (x-1.0435)* 8+0.95    (x = 其他)



    AnticipateInterpolator:
    x * x * ((2+ 1) * x - 2)



    AccelerateDecelerateInterpolator:
    (cos((x+ 1) * π) / 2.0) + 0.5

     

    AccelerateInterpolator:

    pow(x,2)

     

    AnticipateOvershootInterpolator:
    0.5*2*x * 2*x * ((3 + 1) * 2*x - 3)             (0 < x < 0.5)
    0.5*((2*x-2) * (2*x-2) * ((3 + 1) * (2*x-2) + 3)+2)  (0.5 <= x < 1.0)


    DecelerateInterpolator:
    1.0 - pow((1.0 - x), 2 * 1)

     
     

    LinearInterpolator:
    x

     

    OvershootInterpolator:
    (x-1) * (x-1) * ((2+ 1) *( x-1) + 2)+1


    CycleInterpolator:
    sin(2 * 1* π * x)

  • 相关阅读:
    深入浅出WPF之Binding的使用(二)
    深入浅出WPF之Binding的使用(一)
    C#中XML的读取
    DependencyProperty属性介绍
    System.Windows.Markup.IQueryAmbient 在未被应用的程序集中定义
    Unity调用windows系统dialog 选择文件夹
    #if
    协程
    将[-1,1]映射到[0,1]
    Editor模式下实例化Prefab
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/8777802.html
Copyright © 2020-2023  润新知