Activityを起動するとき、デフォルトだと下から画面が立ち上がる。
ハンバーガーメニューからメニュー画面を開きたい時など、必ずしも下から上にニュッっと出てきてほしくないときもある。
そんなときは
Activityに用意されているメソッドoverridePendingTransition()
を使うと簡単でかなり細かい指定までできた。
画面起動時は、onCreateに書く
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_menu);
overridePendingTransition(R.anim.slide_in_left, R.anim.not_move);
}
画面終了時はfinishに書く
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.not_move, R.anim.slide_out_left);
}
もともとのメソッド定義は以下のようになっている。
public void overridePendingTransition(int enterAnim, int exitAnim) {
try {
ActivityManagerNative.getDefault().overridePendingTransition(
mToken, getPackageName(), enterAnim, exitAnim);
} catch (RemoteException e) {
}
}
activityの動きを一括して決めるのではなく、startActivityされたときに新しく立ち上がるactivity,backgroundに回るactivityの動きを指定できるみたい。
色々試してみると楽しい。