5

MainとInfoの2つのアクティビティを持つアプリに取り組んでいます。アプリはMainActivityで起動し、ボタンをクリックすると、InfoActivityが右側からスライドインします。別のボタンをクリックすると、InfoActivityが再び右側にスライドし、Mainが戻ります。

これは、MainActivityでアニメーションとボタンクリックを実装した方法です。

buttonInfo.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) {
       Intent i = new Intent(getApplicationContext(), Info.class);
       Bundle mAnimate = 
          ActivityOptions.makeCustomAnimation(getApplicationContext(),
           R.anim.ani1,R.anim.ani2).toBundle();

          startActivity(i,mAnimate);
            }
        });

私はInfoActivityでも同様に行いましたが、これは正常に機能します。ただし、startActivityを呼び出すと切断されるMainActivityにサーバー接続があるため、意図的にstartActivityではなくfinish()を呼び出す必要があります。

そのようなアニメーションをfinish()メソッドまたは他の提案に適用する方法についてのアイデアはありますか?

4

3 に答える 3

13

DevBytes:Window Animationsウォークスルーで説明されているように、Info.classのfinish()メソッドを次のように置き換えることができます。

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.ani2, R.anim.ani1);
}
于 2013-02-25T21:29:35.347 に答える
6

使用する

        ActivityCompat.finishAfterTransition(this);

これでアニメーション終了後にアクティビティが終了します

于 2015-08-30T17:05:56.190 に答える
-3
Bundle options = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.ani1,R.anim.ani2).toBundle();
ActivityCompat.startActivity(this, intent, options)
于 2013-12-06T02:58:01.217 に答える