【问题标题】:How to animate on finish() via ActivityOptions in Android?如何通过Android中的ActivityOptions在finish()上制作动画?
【发布时间】:2013-02-11 03:59:15
【问题描述】:

我正在开发一个有两个活动的应用程序,主要和信息。该应用程序以 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,因为我在 MainActivity 中有一个服务器连接,当我调用 startActivity 时它会断开连接。

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

【问题讨论】:

    标签: android bundle android-animation activity-finish


    【解决方案1】:

    DevBytes: Window Animations 演练中所述,您可以将 Info.class 的 finish() 方法替换为

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

    【讨论】:

      【解决方案2】:

      使用

              ActivityCompat.finishAfterTransition(this);
      

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

      【讨论】:

        【解决方案3】:
        Bundle options = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.ani1,R.anim.ani2).toBundle();
        ActivityCompat.startActivity(this, intent, options)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-29
          • 1970-01-01
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          • 2017-05-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多