あるViewに対してアニメーション①を実行し、終了したらアニメーション②を実行し、、ということを実現したいとします。ただリスナーでアニメーションの終了を検知しているとコードがネストしたり、繰り返したい場合にどうすればいいか困ったりします。 そういう場合は、enum でステートマシンを作ってアニメーションを実行するとコードがすっきりします。 例えば下記のコードは、あるViewに対してアニメーション AnimState1 AnimState2 AnimState3 の順次実行を繰り返し行うコードの例です。 enum SomeAnimState { Stop { @Override protected void start(View view) { changeState(view, AnimState1); } }, AnimState1 { @Override protected void