A と B の 2 つのアクティビティがあります。A では、B を呼び出します。
Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);
overridePendingTransition(R.anim.activity_animation_right_to_left, R.anim.activity_animation_zoom_in);
ただし、機能するだけR.anim.activity_animation_right_to_left
です。他のアニメーションは適用されません。また、B から A に戻る場合:
finish();
overridePendingTransition(R.anim.activity_animation_zoom_out, R.anim.activity_animation_left_to_right);
のみR.anim.activity_animation_left_to_right
動作します。他のアニメーションは、他の状況では魔法のように機能すると確信しています (それらに問題はありません)。ブラウザー ウィンドウを開くなどの外部アクティビティを呼び出すときも、同じトランジションを使用します。アニメーションは動作します。私のアクティビティ B のみ、機能しません。
編集:アニメーションのXMLは次のとおりです。
R.anim.activity_animation_right_to_left
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromXDelta="100%"
android:interpolator="@android:anim/linear_interpolator"
android:toXDelta="0%" />
R.anim.activity_animation_left_to_right
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromXDelta="0%"
android:interpolator="@android:anim/linear_interpolator"
android:toXDelta="100%" />
R.anim.activity_animation_zoom_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:duration="500"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:toXScale="0.85"
android:toYScale="0.85" />
</set>