Activity間のアニメーション切り替え効果
通常、新しいActivityを起動すると、効果は単一です.各Activityに独自の出場方法があると思うと、ユーザーに与える感覚効果はもっとよくなります.では、私たちはどのようにしてこれらの自分の望む効果を実現しますか?
資料を調べることによってActivityクラスは1つのoverridePendingTransition(enterAnim,exitAnim);このメソッドを呼び出すだけで、対応するアニメーションモードを入力するとOkになります.ただし、startActivity(intent)を必ず実行しなければならないことに注意してください.メソッドは後でこのメソッドを呼び出します.
新しいActivityを開くと、現在のActivityを終了して前のActivityに戻ります.通常の操作はbackkeyを押します.ここでは親クラスのonKeyUp(int keyCode,KeyEvent event)メソッドを書き換える必要がありますが、上記と同様にfinish()メソッドを実行した後にoverridePendingTransition(enterAnim,exitAnim)メソッドを実行することにも注意してください.
ps:このプロジェクトは320 X 480画面で実行されています.
資料を調べることによってActivityクラスは1つのoverridePendingTransition(enterAnim,exitAnim);このメソッドを呼び出すだけで、対応するアニメーションモードを入力するとOkになります.ただし、startActivity(intent)を必ず実行しなければならないことに注意してください.メソッドは後でこのメソッドを呼び出します.
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(clickBtn);
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(clickBtn);
Button btn3 = (Button) findViewById(R.id.btn3);
btn3.setOnClickListener(clickBtn);
}
private OnClickListener clickBtn = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()) {
case R.id.btn1:
intent = new Intent(MainActivity.this, FirstActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.from_left_to_centre, R.anim.from_centre_to_right);
break;
case R.id.btn2:
intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.from_top_to_centre, R.anim.from_centre_to_bottom);
break;
case R.id.btn3:
intent = new Intent(MainActivity.this, ThirdActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.from_right_to_centre, R.anim.from_center_to_left);
break;
}
}
};
}
新しいActivityを開くと、現在のActivityを終了して前のActivityに戻ります.通常の操作はbackkeyを押します.ここでは親クラスのonKeyUp(int keyCode,KeyEvent event)メソッドを書き換える必要がありますが、上記と同様にfinish()メソッドを実行した後にoverridePendingTransition(enterAnim,exitAnim)メソッドを実行することにも注意してください.
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.first);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
finish();
overridePendingTransition(R.anim.from_right_to_centre, R.anim.from_center_to_left);
break;
}
return false;
}
}
ps:このプロジェクトは320 X 480画面で実行されています.