在转型过程中,让新的活动出现在老的后面

我想实现的是重写开始活动animation。

animation应该给人一种旧活动在新活动之上的印象,然后向下滑出屏幕以显示新活动。 我已经尝试了多种方式,如使用overridePendingTransition(startAnim, exitAnim)但问题是他们都在同一时间线animation。 所以overridePendingTransition(R.anim.hold, R.anim.exit_slide_down); 你永远不会看到退出animation,因为新的活动是最重要的。 这可以通过框架来实现吗?

在这里输入图像说明

我一直在试图解决你的解决scheme,在一个示例项目中,我得到它与这个代码工作:

用以下方式调用animation:

 startActivity(new Intent(this, Activity2.class)); overridePendingTransition(R.anim.push_down_in,R.anim.push_down_out); 

R.anim.push_down_in:

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="300"/> </set> 

R.anim.push_down_out:

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="300"/> </set> 

实际上,我在animation文件中find了一个名为android:zAdjustment的属性。

如果我在hold.xml (屏幕1)的hold.xml (屏幕2)和android:zAdjustment="top"中放入了android:zAdjustment="bottom" ,那么我可以得到想要的效果。

这绕过了z顺序问题(我认为这是一个animation时间问题,所以我吠叫错了树)。

约翰

适用于我的解决scheme:

R.anim.exit_slide_down

 <set xmlns:android="http://schemas.android.com/apk/res/android" android:zAdjustment="top"> <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="600" /> </set> 

…接着

 Intent intent = new Intent(activity, SecondActivity.class); startActivity(intent); activity.overridePendingTransition(0, R.anim.exit_slide_down);