0

overridePendingTransition は 2 つのアニメーションを取り、画面全体をアニメーション化します。

2 つの別々のビューをアニメーション化する 2 つのアクティビティ間をどのように移行しますか?

基本的に、ボタンを押すと両開きドアが開き、開いている間に次のアクティビティが表示されます。

これで、画面を次の画面に簡単にスライドできます。

overridePendingTransition(R.anim.transition_left_in, R.anim.transition_left_out);

そして、私は両開きドアを開くことができますが、次のようなトランジションはありません:

public void loginOnClick(View view)
{
    final RelativeLayout leftPanel = (RelativeLayout)findViewById(R.id.RelativeLayoutLeft);
    final RelativeLayout rightPanel = (RelativeLayout)findViewById(R.id.RelativeLayoutRight);

    Animation animLeft = new TranslateAnimation(1, 0, 1, -1, 1, 0, 1, 0);
    animLeft.setDuration(1000);
    animLeft.setFillAfter(true);
    animLeft.setAnimationListener(new Animation.AnimationListener()
    {
        @Override public void onAnimationStart(Animation animation)
        {
        }

        @Override public void onAnimationEnd(Animation animation)
        {
            leftPanel.setVisibility(View.GONE);
            rightPanel.setVisibility(View.GONE);
        }

        @Override public void onAnimationRepeat(Animation animation)
        {
        }
    });
    Animation animRight = new TranslateAnimation(1, 0, 1, 1, 1, 0, 1, 0);
    animRight.setDuration(1000);
    animRight.setFillAfter(true);

    leftPanel.startAnimation(animLeft);
    rightPanel.startAnimation(animRight);
}

アニメーションの後にアクティビティを変更できることはわかっていますが、前のアクティビティをアニメーション化しながら次のアクティビティを見たいと思っています。

どうすればいいですか?
任意の助けをいただければ幸いです。

編集:

私が見つけた最善の回避策はinclude、最初のアクティビティ xml で を使用して、2 番目のアクティビティのコンテキストを含めることです。onCreate()(開くドアの後ろ)しかし、2番目の方法の後にUIのいくつかの変更があるため、それはまさに私が望むものではありません。

4

2 に答える 2

2

回避策を提案できます:

以下を追加して、テーマのデフォルトのウィンドウ アニメーションを無効にします。

<item name="android:windowAnimationStyle">@null</item>

ここで、Activity_2 を開始する直前に、Activity_1 がdouble doors表示されます。Activity_1 でアニメーションを実行する代わりに、Activity_2 でアニメーションを開始しonCreate(Bundle)ます。

double doorsActivity_2 のレイアウトの上に配置する必要があります。loginOnClick(View view)への呼び出しの後に の内容をsetContentView(R.layout.activity_2)Activity_2 のに配置しonCreate(Bundle)ます。

windowAnimationStyleが に設定されているため、nullActivity_1 から Activity_2 への遷移はシームレスに表示されます。

編集:これを今テストしましたが、うまくいきます。

于 2013-09-08T18:38:58.357 に答える