16.动画

注意:仅针对API级别11(Android 3.0.x)和更高版本的动画。

在较低的Android版本上,动画将不会执行(但不会崩溃)。

所有图表类型支持可用于以令人敬畏的方式创建/构建图表的动画。存在三种不同类型的动画方法,分别对x或y轴进行动画化:

  • animateX(int durationMillis):在横轴上对图表进行动画处理,这意味着图表将在从左到右的指定时间内建立。
  • animateY(int durationMillis):在垂直轴上对图表进行动画处理,这意味着图表将在从下到上的指定时间内建立。
  • animateXY(int xDuration, int yDuration):动画水平和垂直轴,导致左/右底部/顶部积聚。

    mChart.animateX(3000); //动画水平3000毫秒
    //或: 
    mChart.animateY(3000); //动画垂直3000毫秒
    //或: 
    mChart.animateXY(3000, 3000);//动画水平和垂直3000毫秒
    

如果animate(…)(任何一种)被调用,则不需要进一步调用invalidate()来刷新图表。

动画宽松

这个库可以让你在动画中应用漂亮的缓动功能。您可以选择以下静态预定义 Easing.EasingOption:

public enum EasingOption {
 Linear,
 EaseInQuad,
 EaseOutQuad,
 EaseInOutQuad,
 EaseInCubic,
 EaseOutCubic,
 EaseInOutCubic,
 EaseInQuart,
 EaseOutQuart,
 EaseInOutQuart,
 EaseInSine,
 EaseOutSine,
 EaseInOutSine,
 EaseInExpo,
 EaseOutExpo,
 EaseInOutExpo,
 EaseInCirc,
 EaseOutCirc,
 EaseInOutCirc,
 EaseInElastic,
 EaseOutElastic,
 EaseInOutElastic,
 EaseInBack,
 EaseOutBack,
 EaseInOutBack,
 EaseInBounce,
 EaseOutBounce,
 EaseInOutBounce,
}

基本上,有两种方法来缓解你的动画:

1.预定义的缓解选项:(此代码将在任何Android版本上运行)

public void animateY(int durationmillis, Easing.EasingOption option);

使用预定义的缓动选项调用任何动画方法:

//使两个轴的动画化与缓和 
mChart.animateY(3000, Easing.EasingOption.EaseOutBack);

当您希望您的代码在Android 3.0(API级别11)下运行时始终使用预定义的动画宽松Easing.EasingOption。

2.自定义宽松功能:(自定义缓存功能将在Android 3.0以下崩溃)

public void animateY(int durationmillis, EasingFunction function); 

创建您自己创建自己的缓和功能类并实现宽松的功能EasingFunction界面:

/**
 * Interface for creating custom made easing functions. 
 */
 public interface EasingFunction {
    /**
     * Called everytime the animation is updated.
     * @param input - the time passed since the animation started (value between 0 and 1)
     */
     public float getInterpolation(float input);
 }

然后以这种方式调用(请注意,这不会运行在Android 3.0以下并崩溃):

//使两个轴的动画化与缓和 
mChart.animateY(3000, new MyEasingFunction()); 
坚持原创技术分享,您的支持将鼓励我继续创作!
0%