Edited at

DroidKaigi2016メモ:用途に合わせたアニメーションの実装方法

More than 1 year has passed since last update.


  • 資料がアップロードされるまでの参考にどうぞ

資料アップロードされました。公式の情報は以下をご参照ください。

http://www.slideshare.net/TakaoSumitomo/ss-58409105


発表者


  • @cattaka_net

  • takao Sumitomo

  • Wantedly唯一のAndroidアプリエンジニア


アニメーションさせる対象


  • Viewの中身を動かす

  • View自体を動かす

  • 複数のViewを含むレイアウトを動かす

  • それぞれに仕組みが用意されている

  • でも新しいのや古いのやで複雑になっている→整理していきましょう


Viewの中身を動かす


  • Animation Drawable


    • 要はパラパラあにめ

    • 必要なもの:drawable/***.ml

    • xmlにを書き、javaで動かす



  • Animated Vector Drawable


    • SVGをアニメーションさせる

    • なめらかなアニメーションが作れる

    • これもxmlにで要素を書いて作る




View自体を動かす


  • View Animation


    • translate:平行移動

    • rodate:回転

    • scale:拡大縮小

    • alpha:フェードイン・アウト

    • xmlでアニメーションを定義(コードからも定義可能)

    • コードからアニメーションを実行



  • Property Animation


    • 2通りの実装がFWにある

    • ObjectAnimatorクラス


      • xmlでアニメーションを定義、コードで実行するところはView Animationと一緒

      • translationXはどこを指しているか?

      • ViewクラスのsetTranslationXをリフレクションで叩いている

      • これがPropertyと呼ばれる所以

      • コードからアニメーションを定義することも

      • 数字をカウントアップするアニメーションとかも作れる



    • ViewPropertyAnimatorクラス

    • コードで定義、コードで実行




複数のViewを動かす


  • Activity Animation


    • xml & code

    • Viewを動かすのに使ったアニメーションと同じものを使う



  • Fragment Animation


    • xml & code

    • Viewを動かすのに使ったアニメーションと同じものを使う

    • SupportLibraryを使っているかどうかで使い方が違う


      • SupportLibraryの場合:View Animation

      • それ以外の場合:Property Animation





  • Transition


    • activityやfragmentじゃないviewgroupをアニメーションさせる

    • あとで



  • Activity Transition


    • xml or code

    • あとで



  • Fragment Transition


    • あとで
       - それぞれの動きと、遷移の前後で共通する動きを定義する

    • この辺の話はサンプルアプリの動きとコードをにらめっこしたほうが良さそう




API Lebelについて


  • Android5.0で一通り揃っている


今回のサンプルアプリはここにあります

https://github.com/cattaka/LearnAnimation