12

2 つのアクティビティがあり、2 つのアクティビティ間で、2 番目のアクティビティが最初のアクティビティを押し上げているかのように、両方のアクティビティのビューが上にスライドするように、アニメーション化されたトランジションを作成したいと考えています。私の最初の活動では、次を使用します:

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class);
FirstActivity.this.startActivity(iSecondActivity);
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);

私のslide.xmlは次のようになります:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromYDelta="0"
        android:toYDelta="-100%p"
        android:duration="2000"
    />
</set>

私のslide2.xmlは次のようになります:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
         android:interpolator="@android:anim/decelerate_interpolator"
         android:fromYDelta="100%p"
         android:toYDelta="0"
         android:duration="2000"
    />
</set>

ただし、問題は、「startActivity」が呼び出されると、トランジションがスライドを開始するときに、2 番目のアクティビティのビューが既にレンダリングされていることです。最初のアクティビティのビューが上にスライドするのを見たいのですが...代わりに、(最初のアクティビティのビューの上にレンダリングされた) 2 番目のアクティビティのビューが上にスライドします。

2 番目の問題は、置換ビューが最初のアクティビティのビューになっていることです。置換ビューを、上に押し上げている 2 番目のアクティビティのビューにしたいと思います。

説明が難しいので、詳しく教えていただけると助かります。混乱をお詫びします。これを読んでくれてありがとう。

PS私はテキストビューを使用しています...レンダリングが速すぎると思いますか?Motorola Razr も使用していますが、問題ではありません。

4

2 に答える 2

10

気にしないでください、それはばかげたエラーでした-「アニメーションに入る」と「アニメーションを終了する」というドキュメントの意味がわかりませんでした。変更してxmlを交換する必要があります:

FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);

の中へ

FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide);
于 2012-04-12T23:31:45.370 に答える