【Android】Canvasを使ってルーレットを作る② - Animationクラスとフリックイベント -

今回は前回作成したルーレット板にアニメーションを付けてくるくる回してみる部分です。 Animationクラスを継承したArcAnimationからRouletteViewのパラメータを調整しながらonDrawを何度も呼ぶという処理です。 実装 ArcAnimationクラスのソースコード import android.view.animation.Animation; import android.view.animation.Transformation; public class ArcAnimation extends Animation { int base = 20; int count = 0; private MainActivity.RouletteView rouletteView; public ArcAnimation(MainActivity.RouletteView rouletteView) { this.rouletteView = rouletteView; } @Override protected void applyTransformation(float interpolatedTime, Transformation transformation) { count++; int move = base - (count / 25); if(move < 0){ move = 0; } rouletteView.addPos(move); rouletteView.requestLayout(); if(move == 0){ cancel(); rouletteView.setIsAnimation(false); } } } メンバ変数のbaseはパネルを移動させる初期値です。つまりルーレット始動直後は20℃ずつ回転します。 メンバ変数のcountはアニメーションの回数です。このカウンタによりだんだんと回転速度...