2013-11-04 35 views
5

私はそれがインターネット上のいくつかの例であることも知っていますStackoverflow私は多くの例を見つけましたが、それは信じられません。 Even I have asked a similar question few time agoと私はこの問題に再突きつけた。基本的に同じ質問ですが、逆の方向です。私はActivity Bでどんなアニメーションをやってもかまいませんが、ここでの問題はActivity Aです。私はいくつかのシナリオでアニメーション化できます。これだけの組み合わせで基本的にActivityAプレイenter_left:私は何をしたいかアクティビティ遷移アニメーションのスライドイン/アウト

overridePendingTransition(R.anim.enter_from_right, R.anim.exit_on_left);

は、(移動)をアニメーション化することでstartActivity()onBackPressed()上だけActivity AいずれかActivity Bは、画面上に不動のままながら。 Activity Aが常に上に表示されます(スライドメニューとして、Activity Bでこれを行うことができます)。 私は本当に上記のスニペットは仕事をすることを考えた:

Intent intent = new Intent(ActivityA.this, ActivityB.class); 
       startActivityForResult(intent, 500); 
       overridePendingTransition(R.anim.stay_still, R.anim.exit_on_left); 

が、私が望むよう

//this is the animation for onBackPressed() 
@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     overridePendingTransition(R.anim.enter_from_left, 0); 
    } 

Activity Aアニメーション化が、Activity Bが突然画面から消え、Iながらも、任意のアニメーションを再生しません。滞在したい(設定(R.anim.enter_from_left, R.anim.stay_still)は何もしません)。

私はすべて5つの必要なアニメーション用意していますexit_on_left

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

<translate 
    android:duration="500" 
    android:fromXDelta="-100%" 
    android:toXDelta="0%" /> 
</set> 

enter_from_leftを

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

<translate 
    android:duration="500" 
    android:fromXDelta="0%" 
    android:toXDelta="-100%" /> 
</set> 

enter_from_right

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

    <translate 
     android:duration="500" 
     android:fromXDelta="100%" 
     android:toXDelta="0%" /> 
    </set> 

exit_on_right

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

    <translate 
     android:duration="500" 
     android:fromXDelta="0%" 
     android:toXDelta="100%" /> 
    </set> 

stay_still

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

    <translate 
     android:duration="500" 
     android:fromXDelta="0%" 
     android:toXDelta="0%" /> 
</set> 

私は、組み合わせの多くを試してみましたが、それらの非が働いていました。このアニメーションが可能かどうか、このようにすることができるかどうか教えてください。 startActivity()に、ActivityAは左側から画面を離れなければならないと移動しながら、Activity Bが出回っ「がある」shoull:

だから、最初のステップは:私はイメージを掲載する予定 、私が何をしたいのかがより明確にします、 "それの下に"。

enter image description here

その後、onBackPressed()Acyivity Bは、画面の左側から入射し、不動のままActivityBを重ね、「戻ってくる」必要があります。

enter image description here

答えて

0

ないあなたはこの組み合わせを試してみましたが、動作するかどうかを確認してください。 - 私は本当にあなたが望むものを理解していれば

startActivityForResult(intent, 500); 
overridePendingTransition(R.anim.enter_from_left, R.anim.stay_still); 
+0

これにより、「アクティビティA」が残っている間に、「アクティビティB」が左から入力されます。最初の引数は(新しい作成された)アクティビティを入力するためのアニメーションです。 – AlexAndro

-1

私は知りませんが、あなたがスライディングメニューを作成したい場合、あなたはそれを実装するために、このチュートリアルを使用することができ、それだけで正常に動作します - それは解決するために、代替ですあなたの問題 - :

http://developer.android.com/training/implementing-navigation/nav-drawer.html

しかし、あなたの代わりにFragmentActivityActivityを使用する必要があります。例が必要な場合は、それを求めてください。投稿します。がんばろう。

+0

いいえ、私はこのアニメーションを共有しなければならないいくつかの活動の流れがあるので、私はこれを望んでいません。これは、スライディングメニューではありません。 – AlexAndro

0

次のフラグメントはフラグメントで非常にうまく動作することがわかりました。fragmentTransaction.setCustomAnimations(R.anim.stay_still,R.anim.exit_on_left);
overridePendingTransition(R.anim.stay_still, R.anim.exit_on_left);はアクティビティで動作しません。

一方逆、

​​または fragmentTransaction.setCustomAnimations(R.anim.enter_from_left, 0);

は、活動してどちらの断片では動作しません。最も近いアプローチは成功しました transaction.setCustomAnimations(R.anim.stay_still,R.anim.exit_on_left, R.anim.enter_from_left,R.anim.exit_on_right);

誰かが他の解決策を持っていれば、私はまだそれを聞いて待っており、それは評価されます。

関連する問題