16.Animations(MPAndroidChart中文翻译)

目录

第8节.Setting Colors(MPAndroidChart中文翻译)
第9节.Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻译)
第10节-Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻译)
第11节.General Settings & Styling(MPAndroidChart中文翻译)
第12节.Specific Settings & Styling(MPAndroidChart中文翻译)
第13节.Legend(MPAndroidChart中文翻译)
第14节.Dynamic & Realtime Data(MPAndroidChart中文翻译)
第15节. Modifying the Viewport(MPAndroidChart中文翻译)
第16节.Animations(MPAndroidChart中文翻译)
第17节. MarkerView (Popup View)(MPAndroidChart中文翻译)
第18节. The ChartData class(MPAndroidChart中文翻译)
第19节. ChartData subclasses(MPAndroidChart中文翻译)
第20节. The DataSet class (general DataSet styling)(MPAndroidChart中文翻译)
第21节. DataSet subclasses (specific DataSet styling)(MPAndroidChart中文翻译)
第22节. The ViewPortHandler(MPAndroidChart中文翻译)
第23节. Customizing the Fill-Line-Position (FillFormatter)(MPAndroidChart中文翻译)
第24节. Proguard(MPAndroidChart中文翻译)
第25节. Realm.io mobile database(MPAndroidChart中文翻译)
第26节. Creating your own (custom) DataSets(MPAndroidChart中文翻译)
第27节. Miscellaneous (more useful stuff)(MPAndroidChart中文翻译)

注意:动画仅支持API 11(Android3.0.x)及以上版本.
在低版本设备上,动画不会执行,但程序不会崩溃.

所有类型的图表都支持动画,可以用一种看起来非常棒的方式来创建和构建图表.存在三种不同类型的动画方法,分为xy,x和y.

  • animateX(int durationMillis): 图表x轴上的值显示动画,意思是图表将会从左到右按指定的时间进行构建.
  • animateY(int durationMillis): 图表y轴上的值显示动画,意思是图表将会从下到上按指定的时间进行构建.
  • animateXY(int xDuration, int yDuration): 同时执行animateX(…)和animateY(..,)方法的动画.
mChart.animateX(3000); // animate horizontal 3000 milliseconds
// or:
mChart.animateY(3000); // animate vertical 3000 milliseconds
// or:
mChart.animateXY(3000, 3000); // animate horizontal and vertical 3000 milliseconds

如果animate(…)(所有类型)被调用了,不需要额外调用invalidate()方法来刷新图表.

Animation easing

这个依赖库允许你将非常简单的功能应用到你的动画中.你可以在预定义的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,预定义的easing options:(可以运行在任何Android版本中)

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

用预定义的easing option中的缓动动画:

// animate both axes with easing
mChart.animateY(3000, Easing.EasingOption.EaseOutBack); 

当你希望你的代码可以在Android3.0(API 11)以下版本运行时,一定要使用预定义Easing.EasingOption中的缓动动画.

2,自定义缓动功能(自定义的缓动功能在Android3.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);
 }

然后用下面方式调用(注意,Android3.0以下不会执行,并使程序崩溃):

// animate both axes with easing
mChart.animateY(3000, new MyEasingFunction()); 
    原文作者:xiaobug
    原文地址: https://www.jianshu.com/p/d2c474394a2f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞