編集:さて、あなたがやろうとしていることは、a **の苦痛です(単純であるべきだったAndroidのもののもう1つです)!以前のバージョンの Android では、2 つのアニメーションを交互に表示してもうまくいきません。never バージョンでは、API レベル 11 の animationset を使用できます。例はこちら. または、より単純なアニメーションを使用します。
アクティビティのスライドイン/スライドアウトを行う方法は次のとおりです(古い回答):
左のアクティビティにスライド:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
スライド イン ライト アクティビティ:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
左のアクティビティをスライドアウト:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0" android:toXDelta="-100%p"
android:duration="@android:integer/config_shortAnimTime" />
スライド アウト ライト アクティビティ:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0" android:toXDelta="100%p"
android:duration="@android:integer/config_shortAnimTime" />
使用例:
Intent intent = new Intent(this, YourNewActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
裏面の使用例:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
}
return super.onKeyDown(keyCode, event);
}