ぷ~ろぐぷ~ろぐ身辺雑記、アニメ・マンガ、Jリーグ(特に新潟)のこととか。2012Androidアプリ開発メモ068:TweenアニメーションViewに対して回転やサイズ変更などをすることでアニメーションを作成する。下記のクラスを利用できるが、クラスを直接利用するのではなくXMLでリソースファイルとして定義してプログラムに読み込んで利用することがほとんど。android.view.animation.Animationクラスを継承している。アニメーションの定義の例。下記の定義はだんだん濃くなりながら回転していくアニメーションである。ファイル名は制限はない。/></set></pre>android:interpolator属性はアニメーションの変化の割合を指定する。動きがだんだん遅くなる属性にはalpha、rotate、scale、translateの各要素に固有のものと、共通のものがある。それぞれの意味は参考ページを参照。下記は1秒で縦に縮んで、2秒で元に戻るアニメーションの例。android:startOffset属性を使って、前半のscale要素で定義した動きが終わってから後半のscale要素で定義した動きが始まるように、後半のscale要素にはandroid:startOffset属性を持たせてある。</set></set>上記の例で注意点が2つ。アニーメーションが終わった後そのままの状態を保つためにandroid:fillAfter属性をtrueとしているが、この属性はscale要素など個々の動きを定義する要素に設定しても効かない。Tweenアニメーションの定義のトップレベルのset要素に設定しないと意味がないようだ。後半のscale要素のY軸方向の値は1.0~2.0としている。縮めた物体を元に戻すなら0.5~1.0のような気がするが、それでは思ったようなアニメーションにはならない。scale要素のandroid:fromXScale属性などの値はそこで定義されたアニメーションが始まる時点の大きさが基準となるからである。0.5~1.0では前半の動きで既に大きさの0.5倍になっているところからさらに0.5倍(元の大きさの0.25倍)からはじまって、1倍(0.5×1.0で元の0.5倍)の大きさで終わってしまう。1.0~2.0なら元の大きさの0.5倍(0.5×1.0)から始まって、元の大きさ(0.5×2.0)となる。