Android 3.0 以降で追加されたプロパティアニメーション機能の一部(ここ重要)をバックポートしたライブラリを作成しました。
このライブラリを使用すると、なんと! Android 1.6 環境でも、
独自に作成したオブジェクトのカスタムプロパティ(※)に限られますが、プロパティアニメーションをさせることができます。
(※Android 3.0 以降にしか存在しない View の組み込みプロパティ(x, y, alpha...など)は使用できない)
冒頭の画面キャプチャは、あの HT-03A(Android 1.6)上で Android 4.0 の API Demos に含まれる
プロパティアニメーションのサンプルが動作している様子です。
HT-03A(Android 1.6)たん可愛いよ。
IS01(Android 1.6)たん可愛いよ。
ソースコード
- android-animation-library-for-custom-property - Android animation library for custom property - Google Project Hosting ・・・Source タブ参照
※Android 4.0 の API Demos のプロパティアニメーションのコードのうち、
Android 1.6 + 本ライブラリで使用できる 6 つのサンプルコードも収録しています。
サポートしているクラス(制限事項あり)
- Animator
- AnimatorListenerAdapter
- AnimatorSet
- ArgbEvaluator
- FloatEvaluator
- FloatKeyframeSet
- IntEvaluator
- IntKeyframeSet
- Keyframe
- KeyframeSet
- ObjectAnimator
- PropertyValuesHolder
- TimeAnimator
- TypeEvaluator
- ValueAnimator
※制限事項
変化させる対象のプロパティは独自に定義したものに限られます。
例えば、View の移動、回転、拡大縮小、アルファなどの組み込みプロパティは、
Android 3.0 以降のフレームワークに組み込まれているプロパティのため使用できません><
非サポートクラス
- AnimatorInflater → リソースに定義したアニメーションからのインフレート
- LayoutTransition → レイアウト変更時に適用するアニメーション
- TimeInterpolator → 従来の android.view.Interpolator
- ViewPropertyAnimator → View の組み込みプロパティに対する最適化されたアニメーション
バックポート手順
詳細なバックポート手順については下記リンク先(Google Drive(ログイン不要))に上げました。
https://docs.google.com/document/d/1fu9p3hfG8GDJOg6H6rIuWhhiGhsAQ4msMPb_pSiRI8g/edit
Google Code 内のリポジトリのコミットログにも細かくコメントをつけてますので、そちらを参照してもわかるかと思います。
コードを読むと、言語レベルでプロパティをサポートしていない Android において、
いかにしてプロパティを実現しているか理解できて面白いと思います。
一部、NDKを使用してネイティブコードも使用しています。
Androidプログラミング上達読本
あっ、そうそう、大事なこと言い忘れてました。
このたび、リックテレコムさんから出版される「
同 Section にてプロパティアニメーションの API を解説していますので、あわせて読んでいただければ有難いです。
この本は、他にも、タオガクさんや、やんざむさんなど著名な方々の記事で構成されています。
2012年8月4日 ~10日 くらいには発売されますので、見かけた際には、是非手に取って確認してみてください。

http://www.ric.co.jp/book/contents/book_902.html
私が書いた記事の構成としては、4-2 で API の解説をしていますが、
どちらかというと、4-2 は、困ったときに逆引き的な読めるように書いた/レイアウトしたので、
時間のない方は、プロパティアニメーションの魅力を理解するために
4-3、4-4 を斜め読みするのが良いかもしれません。
また、4-3 では、あの伝説の、、、「第4回 SHARPハッカソン」で生まれたスタ★ミやモグタソも登場します。
最後の 4-4 は、グラフ(カスタムビューのカスタムプロパティ)のアニメーションで、
Android 3.0 以降向けに作成したものですが、本エントリのバックポートライブラリを使用すると、
なんと Android 1.6 でも動作してしまいますー。
ちなみに、Google Drive に上げたバックポート手順は、紙面の都合上カットした没記事です^^;
30ページの枠ですが、勢い余って50ページ書いてました。。。
ということで、本エントリ以外にも、まだ隠し玉があったりします///
個人的には、プロパティアニメーションを使用したアプリが増えてくるのは・・・
2013年以降かな。。。
と思ってますので、末永く手元に置いていただければ・・・と思います^^;
あわせて読みたい
