見せたいね2019-07-13animatorが終わった時の挙動を変えたかったAndroidAndroidのValueAnimatorでワンショットのアニメーションを実装していたところ、動いている最中に止めたくなった時に最初の状態に戻したい最後の状態まですっ飛ばしたいということがあって少し考えた。2019AndroidのAnimatorクラスにはcancel()とend()というメソッドがあってどちらもアニメーションが止まるのだが、cancel()は呼ばれた時の状態で止まるend()は最後の状態になるという感じになっていた*1ので、cancel()のほうの挙動を変えるためにAnimatorListenerをラップしてAnimatorListener.onAnimationCancel()の中で最初の状態に戻すようなクラスを作った。github.comワンショットのアニメーションなので、アニメーションが止まった時にリスナをremoveする処理もついでに入れた。最初コードを読んでいるとcancel()を呼んだ時にもAnimatorListener.onAnimationEnd()が呼ばれそうに見えたのでonAnimationCancel()が呼ばれたときにフラグを立ててonAnimationEnd()の中身が実行されないようにしていたんだけど、実際にはonAnimationEnd()は呼ばれなかったので最終的にフラグは使わないことになった。今後いろんなケースに対応していくなかでキャンセルフラグを復活させることがあるかもしれない。読者になるリンクはてなブログブログをはじめる(無料)お知らせ検索はてなブログをはじめよう!akihito104さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。