请参考此图片:
1-启动应用程序时,会通过活动显示启动画面
2-然后,执行进入主要活动(并且启动闪屏活动)
3-用户通过按钮点击可以进入screen-1或screen-2活动。
3.1-执行此操作时,将保留主活动(未完成)并创建所需的屏幕活动。
4-从屏幕-2或屏幕2活动回来只需完成它们即可完成。然后,默认情况下,执行会返回到主活动。
我想要的是:
1-图片上(A)的默认过渡动画。它表示默认动画从Splash到Main Activity,从Main Activity到screen-1,以及screen-1完成时(返回Main Activity时)。
2-图片上(B)的特定过渡动画。这意味着从主活动进入屏幕2并且屏幕2完成时(返回主活动时)。
就我在这里和互联网上搜索而言,我从未发现如何实现这一目标。
如何做到这一点?
我成功地从Main Activity-> screen-1和Main Activity-> screen-2获得了不同的动画,但我完全无法在screen-1->主要活动和屏幕之间拥有不同的动画 - 2->主要活动。
非常感谢你的帮助!
答案 0 :(得分:3)
使用以下代码启动屏幕2的活动:
startActivityForResult(intent4Screen2, RESULT_ANIMATION);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
在onActivityResult()中你输入:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_ANIMATION:
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
break;
}
}
RESULT_ANIMATION是一个常量,zoom_enter和zoom_exit是你的动画,如:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<alpha
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
如果您需要支持不支持overridePendingTransition()方法的Android&lt; 2.0,则需要使用反射。