DesignではFloatingActionButtonを使うことがあります。アニメーションを使うと、ユーザーが視覚的にアクションを把握しやすくなります。この記事は、AndroidアプリでFloatingActionButtonをアニメーションさせる実装方法を記載した記事です。記事の内容を実装したアプリケーションの動画です。アニメーションの種類Androidには、sdkのバージョンで色々なアニメーションが用意されています。それぞれのアニメーションは実装方法も異なります。この記事では、ObjectAnimatorを使ってアニメーションを実装します。11)からサポートされているアニメーションですが、現在でもよく利用されているアニメーションです。アプリ設計FloatingActionButtonのアニメーションは、以下の仕様を満たすこととします。最初に、FloatingActionボタン押下(open)処理を実装します。Animator実装FloatingActionButtonを90°回転させるアニメーションを作成します。anim}AnimatorInflater#loadAnimatorでxmlに記述したアニメーションを取得します。Animatorクラスなので、xmlファイルはres/animatorフォルダに配置します。Animationクラスとは異なることに注意してきださい。Animationは、res/animatorフォルダにxmlを配置します。ターゲットを90°回転させるアニメーションの場合、以下のようなxmlを作成します。valueTo=90.0)回転(ropertyName=rotation)する設定です。ターゲットの設定Animator#setTargetでアニメーションするオブジェクトを設定します。anim}setTargetはオブジェクトを弱い参照で保持します。Interpolatorの設定Interpolatorを利用すると、アニメーションの動きを補正できます。anim}DecelerateInterpolatorを利用すると、勢いよく速度が増加した後に減速します。addListenerの実装Animator#addListenerメソッドを使ってアニメーションの終了時やキャンセル時の処理を実装します。anim}AnimatorListenerは、AnimatorListenerでなくAnimatorListenerAdapterを使うことをオススメします。AnimatorListenerAdapterを使うと、必要なメソッドだけをオーバーライドすれば良いので、可読性が向上します。ここでは、アニメーションが終了したらstate変数にANIMATEDの状態を設定しています。Animatorの細部実装ボタンを連続クリックされると、アプリが落ちる原因になるので、状態管理もしっかりと実装しましょう。onPause時はアニメーションを停止させます。アニメーションを別スレッドで動かすとアプリがクラッシュする可能性があるからです。end()としたほうがコードが読みやすいし、拡張性もあるのかな。SAMコンストラクタView.OnClickListenerにはSAMコンストラクタを利用しています。}}もちろん、メソッドを利用しても問題ありません。SAMコンストラクタを使った方が、kotlinらしく書けるし、インスタンスを生成するコストを省略できます。apply関数の適用Animatorの生成と設定をapply関数でまとめても良いと思います。}最後に、FloatingActionボタン押下(close)処理を実装します。}}FloatingActionボタン押下(open)処理とほぼ同じなので、詳細な説明は省きます。アニメーションが終了したらstate変数にNORMALの状態を設定して、最初の状態に戻しています。結論アニメーションを使うと、ユーザーが視覚的にアクションを判断できるようになるので、操作の邪魔にならないよううまく使っていきましょう。