注意:仅针对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());