zoukankan      html  css  js  c++  java
  • Android动画中Interpolator 详解和演示

    遇到一个项目需求,想让动画变得更活泼一点,于是想到了动画属性中的Interpolator,写了基本例子测试一下Android提供给我们现成的加速器的效果:

     

    效果代码中方法xml中属性
    越来越快 AccelerateInterpolator() @android:anim/accelerate_interpolator
    越来越慢 DecelerateInterpolator() @android:anim/decelerate_interpolator
    先快后慢 AccelerateDecelerateInterpolator() @android:anim/accelerate_decelerate_interpolator
    先后退一小步然后向前加速 AnticipateInterpolator() @android:anim/anticipate_interpolator
    快速到达终点超出一小步然后回到终点 OvershootInterpolator() @android:anim/overshoot_interpolator
    到达终点超出一小步然后回到终点 AnticipateOvershootInterpolator() @android:anim/anticipate_overshoot_interpolator
    弹球效果,弹几下回到终点 BounceInterpolator() @android:anim/bounce_interpolator
    均匀速度 LinearInterpolator()

    @android:anim/linear_interpolator

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


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

    Android:interpolator="@android:anim/"
    android:shareInterpolator="true"

    x < 0.3535< 0.7408< 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



    < 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)



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




  • 相关阅读:
    数据结构——栈与队列操作(用栈模拟队列)
    数据结构——链队列的基本算法
    数据结构——循环队列(动态分配空间)基本运算
    数据结构——顺序栈(动态分配空间)的基本操作
    D3画完整柱状图(带坐标轴、标签)
    D3学习之坐标系绘制
    d3实现折线图
    D3学习之画布制作
    网址——几个有用的
    使用.csv文件
  • 原文地址:https://www.cnblogs.com/ldq2016/p/6879566.html
Copyright © 2011-2022 走看看