2012-02-07 13 views
2

アクティビティで、私は2つのActivitiesの間のカスタムトランジションをしようとしています。現在のActivityをそのサイズの約半分に縮小してから、x値がスケール変換を実行して、Activityが3-Dで回転しているかのように見えるようにします。その後、そのアニメーションが終了した後、新しいアニメーションActivityで同じアニメーションが正反対の順序で発生します。Androidのアクティビティ遷移の注文

私の質問は、入力Activityのアニメーションが終了するアニメーションが終了した後まで開始されないように、私は、アニメーションで一時停止を持つことができるか、でしょうか? overridePendingTransitionメソッドを使用する必要があるため、渡されるすべてのアニメーションはintの値であるR.animでなければなりません。それ以外の場合は、AnimationListenerを使用すると簡単になります。しかし、私はそれをする方法を考えることができません。

アイデア?

編集:私はそれを理解したので、答えをチェックすることができます!

+1

あなた自身の答えを見つけたので、あなたの編集を答えに移し、それを受け入れます。これは自分自身やコミュニティにとって非常に役立ちます。 :) –

答えて

4

同じことを達成しようとしている人のために、私はそれを理解しました。秘密はXMLでandroid:startOffsetを使用することです。コードは以下の通りである:

出口アニメーション:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.8" 
     android:fromYScale="1.0" android:toYScale="0.8" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" /> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="100" /> 
</set> 

入口アニメーション:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="0.0" android:toXScale="1.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="250" /> 

    <scale 
     android:fromXScale="0.8" android:toXScale="1.0" 
     android:fromYScale="0.8" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" 
     android:startOffset="400" /> 
</set> 

そしてJavaコード:

startActivity(new Intent(this, YourNextActivity.class)); 
overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim); 

これはよく、滑らかを作成します作成されている次のアクティビティが現在のアクティビティの「戻る」にあるかのように見えるようにします。