Noblesse Oblige

App/iOS/Android/Unity/cocos2d/VR/GameJam/Hackathon/肉 ブログの記事は勉強会の書きなぐりメモが多め

【DroidKaigi 2017】実践アニメーション 複雑なアニメーションへのアプローチ

セッション情報 サンプルコード

目次

  • 自己紹介とこの講義について
  • Viewアニメーションの基礎
  • 様々なアプローチの紹介
    • 複数の要素を組み合わせる
    • AnimatedVectorDrawableの作り方
    • コードで実装する (これが本編)

自己紹介

  • Naoya Yunoue
  • Android Kotli大好き
  • 株式会社セプティーニ・オリジナル

どうやってアニメーションを作るか?

  • アニメーション画像データがあるなら問題なし
  • ない場会津親って作るのか?

Animation関連のAPIがたくさん

  • Animation
  • Transition Animation
  • Property Animation
  • etc…

基本的なアニメーション

  • 移動
  • 拡大縮小
  • 回転
  • 透過

Material Designからのアニメーション事情

  • 物理的な視覚効果を表現する
  • ユーザーアクションへのフィードバックが重要

複雑なアニメーションへのアプローチ

複数の要素を組み合わせる

  • res/animatorにAnimationSetのリソースを作る
  • 他のViewにも使いまわせる

辛い

  • typoが怖い
  • アニメーションが複雑になってくると読みづらい
  • 一度作壊死したリソースが誠意気になりやすい
    • 保守に向いていない

AnimatedVectorDrawable

  • ObjectAnimatorを使ってVectorDrawableをアニメーションさせる
  • support libraryで使えるようになった

Android Icon Animator

  • GoogleのRoman Nurik氏による神ツール
  • 作成したアニメーションアイコンをxmlで出力可能
    • 非常に便利
  • まだPreview版なので、まだバグっぽい点はある

ViewAnimator + CustomView 万能説

  • これをお勧めしたい

ValueAnimator

  • ObjectAnimatorの継承元
  • API Level 11~
  • 指定した値を指定した時間内で変化させる
  • 複数のプロパティを持たせることも可能

まとめ

  • IconAnimator便利
  • ValueAnimatorとCustomeViewを使えば、簡単に複雑なアニメーション作れる