我们知道自定义View是通过onDraw(Canvas canvas)函数进行绘图的,动画的实现其实就是不停地重绘。
- 设置动画的时间
private final int DURATION = 2500;//动画持续时间
2.定义插值时间变量,这个变量的值在0-1之间
private float mInterpolatedTime;
3.然后加上这两个
private class MoveAnimation extends Animation {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
mInterpolatedTime = interpolatedTime;
invalidate();
}
}
public void startAnimation() {
mInterpolatedTime = 0;
MoveAnimation move = new MoveAnimation();
move.setDuration(DURATION);
move.setInterpolator(new AccelerateDecelerateInterpolator());
startAnimation(move);
}
- onDraw里按照mInterpolatedTime在不同时间绘制不同的图就OK
- 使用时要用
view. startAnimation();