Posted at

activity起動の仕方を変更する

More than 3 years have passed since last update.

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の動きを指定できるみたい。

色々試してみると楽しい。