如何在Android中使用ActivityOptions来完成动画效果?

5
我正在开发一个应用程序,包含两个活动:主Activity和信息Activity。该应用程序从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中做了类似的事情,这个方法很好用。然而,我想要并且需要调用finish()方法而不是startActivity和一个intent,因为我在MainActivity中有一个服务器连接,当我调用startActivity时会断开连接。

有没有想法如何将这样的动画应用到finish()方法或其他建议?

3个回答

13

DevBytes: 窗口动画教程中所述,您可以将Info.class的finish()方法替换为

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.ani2, R.anim.ani1);
}

6

使用

        ActivityCompat.finishAfterTransition(this);

这将在动画完成后结束活动。

-2
Bundle options = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.ani1,R.anim.ani2).toBundle();
ActivityCompat.startActivity(this, intent, options)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接