10

私が達成しようとしているのは、終了するアクティビティのみの遷移アニメーションで新しいアクティビティを開始することです。

新しいアクティビティが現在のアクティビティの後ろになる現在のアクティビティを上にスライドさせたいと思います。

これがスライドアップアニメーションです: R.layout.slide_up

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="1000"
        android:fromYDelta="0%"
        android:toYDelta="100%" />

</set>

アクティビティ アニメーション トランジションを適用する方法は次のとおりです。

overridePendingTransition ( 0 , R.anim.slide_up );

新しいアクティビティのアニメーションが必要ないため、入力アクティビティに 0 を使用していますが、動作していません (アニメーションは実行されません)。アクティビティに入るためにアニメーションも使用すると、次のように機能します(両方のアニメーションが実行されます):

overridePendingTransition ( R.anim.slide_out , R.anim.slide_up );

ここでR.anim.slide_out :

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="1000"
        android:fromYDelta="100%"
        android:toYDelta="0%" />

</set>

何か案は ?

私はAndroid 4.1.2とAndroid 4.0.4に取り組んでいます

4

4 に答える 4

14

終了アニメーションを変更して、開始アクティビティの上にレンダリングされるようにします。

R.anim.slide_up

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:zAdjustment="top">

    <translate
        android:duration="1000"
        android:fromYDelta="0%"
        android:toYDelta="100%" />

</set>

次に、アニメーションを設定するために最初に行っていたことを行うことができます。

overridePendingTransition ( 0 , R.anim.slide_up );
于 2013-02-26T13:50:49.350 に答える
3

startActivity メソッドの後に以下のメソッドを呼び出します。

 overridePendingTransition(0,0);

これにより、デフォルトのアニメーションが上書きされ、アニメーションは実行されません。必要に応じて、カスタム アニメーションを指定することもできます

overridePendingTransition(R.anim.animation1,R.anim.animation2);

于 2014-05-12T08:47:46.800 に答える
3

私はまったく同じトランジションを持っており、そのようなアニメーションは私にとってはうまくいきます:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="0%" android:toYDelta="100%" android:zAdjustment="top"
android:duration="300" />  
于 2013-02-26T14:00:40.517 に答える