2012年5月22日

【Android】Flipアニメーションの実装をしてみた


Androidのアニメーションといえば、
どこも横からや、下からの遷移は解説しておりますが、
Flipのアニメーションを実装した場合の解説が無かったので、
作ってみました。


参考ソース:morodomi / FlipActivities | GitHub

解説:
まずは、INとOUTのアニメーションを用意します。
ここでは、INがgrow_from_middle.xml、
OUTがshrink_to_middle.xmlになります。

<?xml version="1.0" encoding="utf-8"?>
<scale
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/linear_interpolator"
 android:fromXScale="1.0"
 android:toXScale="0.0"
 android:fromYScale="1.0"
 android:toYScale="1.0"
 android:pivotX="50%"
 android:fillAfter="false"
 android:duration="200" />

<?xml version="1.0" encoding="utf-8"?>
<scale
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/linear_interpolator"
 android:fromXScale="0.0"
 android:toXScale="1.0"
 android:fromYScale="1.0"
 android:toYScale="1.0"
 android:pivotX="50%"
 android:fillAfter="false"
 android:startOffset="200"
 android:duration="200" />

これをstartActivity()の時や、finish()時に、
overridePendingTransactionで呼びます。
Intent i = new Intent(getApplicationContext(), SubActivity.class);
 startActivity(i);
 overridePendingTransition(R.anim.grow_from_middle,
    R.anim.shrink_to_middle);

finish();
overridePendingTransition(R.anim.grow_from_middle,
    R.anim.shrink_to_middle);