AndroidオープンソースアニメーションフレームNineOldAndroid

2882 ワード

紹介する
Androidプラットフォームには、Property Animation(Android 3.0導入)とView Animationの2つのアニメーションシステムがあります.どちらのアニメーションも選択できますが、より柔軟で強力な機能を提供するため、Property Animationが優先です.また、Drawable Animationを使用すると、一連のピクチャリソースをロードし、指定した順序でフレームごとに再生することができます.Property AnimationIntroduced in Android 3.0 (API level 11), the property animation system lets you animate properties of any object, including ones that are not rendered to the screen. The system is extensible and lets you animate properties of custom types as well.原文:Android 3.0(API 11)が導入され、画面にレンダリングされていないオブジェクトを含む任意のオブジェクトをアニメーション化することができます.Property Animationは拡張性があり、オブジェクトのカスタム属性タイプアニメーションもサポートされています.View AnimationView Animation is the older system and can only be used for Views. It is relatively easy to setup and offers enough capabilities to meet many application's needs.原文:View Animationは古いアニメーションシステムであり、Viewオブジェクトにしか使用できません.多くのアプリケーションのニーズを満たすのに十分なアニメーション機能を提供しながら、比較的簡単に使用できます.Drawable AnimationDrawable animation involves displaying Drawable resources one after another, like a roll of film. This method of animation is useful if you want to animate things that are easier to represent with Drawable resources, such as a progression of bitmaps.
Drawable animationは、映画のフィルムのような一連の画像リソースを次々と表示します.
Android property animationはAndroid 3.0(API 11)以上でしか利用できませんが、幸いにもオープンソースの神様がこの問題を解決してくれました.このプロジェクトはNineOldAndroid、Githubアドレスです.https://github.com/JakeWharton/NineOldAndroids
NineOldAndroidはHoneycomb animation APIをAndroid Versionプラットフォーム全体に移植し、ValueAnimator、ObjectAnimatorなどのHoneycomb animation APIは1行のコードを変更せず、importのパッケージ名を変更するだけで新しいapiに完全に互換性があるようにした.
Usage
Honeycomb animation APIに詳しいなら、import androidを使うだけで簡単です.animation.ObjectAnimatorをcomに置き換える.nineoldandroids.animation.ObjectAnimatorでいいです.
ValueAnimator colorAnim = ObjectAnimator.ofInt(this, "backgroundColor", /*Red*/0xFFFF8080, /*Blue*/0xFF8080FF);
colorAnim.setDuration(3000);
colorAnim.setEvaluator(new ArgbEvaluator());
colorAnim.setRepeatCount(ValueAnimator.INFINITE);
colorAnim.setRepeatMode(ValueAnimator.REVERSE);
colorAnim.start();

NineOldAndroidライブラリは、最新のAndroid 3.0 Property Animation APIとほぼ完全に互換性があります.
AnimatorSet set = new AnimatorSet();
set.playTogether(
    ObjectAnimator.ofFloat(myView, "rotationX", 0, 360),
    ObjectAnimator.ofFloat(myView, "rotationY", 0, 180),
    ObjectAnimator.ofFloat(myView, "rotation", 0, -90),
    ObjectAnimator.ofFloat(myView, "translationX", 0, 90),
    ObjectAnimator.ofFloat(myView, "translationY", 0, 90),
    ObjectAnimator.ofFloat(myView, "scaleX", 1, 1.5f),
    ObjectAnimator.ofFloat(myView, "scaleY", 1, 0.5f),
    ObjectAnimator.ofFloat(myView, "alpha", 1, 0.25f, 1)
);
set.setDuration(5 * 1000).start();

具体的な使い方はNineOldAndroid sampleをダウンロードすることができますが、ここではあまり紹介しません.