2016年9月19日月曜日

独自で2Dアニメーションを実装するベストプラクティス

2Dアニメーションを行いたい!

といった場合、Androidにはいくつもの方法が存在します。

  • Animationクラスを使用
  • ObjectAnimatorクラスを使用
  • ViewPropertyAnimatorクラスを使用
  • SurfaceViewクラスを使用


AnimationクラスはAPI Level1からあるレガシーなAPIですが、jniのオーバヘッドが大きく、またAnimationSetで複数のアニメーションを同時実行しようした場合、それぞれが独立して動作するためパフォーマンスが良くありません。Googleはこれを早くdeprecatedにするべきです。

SurfaceViewはViewのレンダリングがHWアクセラレーションに対応してからその存在意義がなくなりました。これもdeprecatedになるべきです。

結果的に今使うべきはObjectAnimatorかViewPropertyAnimatorに絞られるわけですが、標準のAnimatorだけではどうしても実現できない複雑な動きをさせたい場合があります。

そこで使用できるのが以下のAPI。日本語に訳すと振り付け師。

android.view.Choreographer

VSync周期でコールバックしてくれるので、それを受けて自らViewのpropertyを操作すれば好きなようにアニメーションが実装できます。


----------
最後に確認したOSバージョンはAndroid 7.0です

AndroidはGoogle Inc.の商標または登録商標です

0 件のコメント:

コメントを投稿