在转型过程中,让新的活动出现在老的后面
我想实现的是重写开始活动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);