动画
注意:动画只能工作在API级别11(Android 3.0.x)或更高
在低版本Android使用,动画将不执行(但是也不崩溃)
所有的图表类型都支持动画,那能被用来创建图表以一种很酷的方式。有三种类型的动画方法存在通过x轴,y轴或者两个轴来区分:
- animateX(int durationMillis):动画的图表值在水平轴,意味着图标将在指定的时间从左到右建立。
- animateY(int durationMillis):动画图表值在y轴,意味着图表将在指定的时间内从下到上构建。
- animateXY(int xDuration, int yDuration):动画显示于水平和垂直的轴上,结果为左右上下都可以构建。
1. mChart.animateX(3000); // animate horizontal 3000 milliseconds
2. // or:
3. mChart.animateY(3000); // animate vertical 3000 milliseconds
4. // or:
5. mChart.animateXY(3000, 3000); // animate horizontal and vertical 3000 milliseconds
如果animate(…)(任何类)被调用,不用再调用invalidate()来刷新图表。
动画缓冲
这个库允许你为你的动画使用好的缓冲函数。你能选着下面预定义的静态Easing.EasingOption
1. public enum EasingOption {
2. Linear,
3. EaseInQuad,
4. EaseOutQuad,
5. EaseInOutQuad,
6. EaseInCubic,
7. EaseOutCubic,
8. EaseInOutCubic,
9. EaseInQuart,
10. EaseOutQuart,
11. EaseInOutQuart,
12. EaseInSine,
13. EaseOutSine,
14. EaseInOutSine,
15. EaseInExpo,
16. EaseOutExpo,
17. EaseInOutExpo,
18. EaseInCirc,
19. EaseOutCirc,
20. EaseInOutCirc,
21. EaseInElastic,
22. EaseOutElastic,
23. EaseInOutElastic,
24. EaseInBack,
25. EaseOutBack,
26. EaseInOutBack,
27. EaseInBounce,
28. EaseOutBounce,
29. EaseInOutBounce,
30. }
基本上有两种缓冲动画:
1、预定义缓冲动画:(这些代码可以运行在任何安卓版本)
1. public void animateY(int durationmillis, Easing.EasingOption option);
使用预定义缓冲选项调用任何动画方法
1. // animate both axes with easing
2. mChart.animateY(3000, Easing.EasingOption.EaseOutBack);
在安卓3.0(API Level 11)以下版本总是使用Easing.EasingOption为预定义缓冲动画。
2、自定义缓冲函数:(自定义缓冲函数在安卓3.0以下会崩溃)
1. public void animateY(int durationmillis, EasingFunction function);
创建自定义缓冲动画通过创建你自己的缓冲函数和实现EasingFunction接口:
1. /**
2. * Interface for creating custom made easing functions.
3. */
4. public interface EasingFunction {
5. /**
6. * Called everytime the animation is updated.
7. * @param input - the time passed since the animation started (value between 0 and 1)
8. */
9. public float getInterpolation(float input);
10. }
下面是调用这个的方法(注意,这个运行在安卓3.0以下会奔溃)
1. // animate both axes with easing
2. mChart.animateY(3000, new MyEasingFunction());
