我們知道自定義View是通過onDraw(Canvas canvas)函數(shù)進行繪圖的,動畫的實現(xiàn)其實就是不停地重繪。
- 設(shè)置動畫的時間
private final int DURATION = 2500;//動畫持續(xù)時間
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();