0

请参考这张图片:

https://lh4.googleusercontent.com/-gEW9RFcjpnQ/UTKSd0DSR5I/AAAAAAAAALs/P7i47evr2uY/s503/transitions.png

1-启动应用程序时,通过活动显示启动画面

2-然后,执行转到主活动(并且启动屏幕活动完成)

3-用户,通过按钮点击,可以进入屏幕1或屏幕2活动。

3.1- 这样做时,主活动被保留(未完成)并创建所需的屏幕活动。

4- 从屏幕 2 或屏幕 2 活动返回只需完成它们即可。然后,默认情况下,执行返回到 Main Activity。

我想要的是:

1-图片上(A)的默认过渡动画。它表示从 Splash 到 Main Activity、从 Main Activity 到 screen-1 以及 screen-1 完成时(返回到 Main Activity 时)的默认动画。

2-图片上(B)的特定过渡动画。这意味着从 Main Activity 转到 screen-2 以及 screen-2 完成时(返回到 Main Activity 时)。

就我在这里和互联网上的搜索而言,我从未发现如何实现这一点。

如何做到这一点?

我成功地从 Main Activity->screen-1 和 Main Activity->screen-2 获得了不同的动画,但我完全无法在 screen-1->Main Activity 和 screen-2->Main Activity 之间获得不同的动画。

非常感谢您的帮助!

4

1 回答 1

3

您使用以下代码启动屏幕 2 的 Activity:

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 <2.0,则需要使用反射。

于 2013-03-03T02:31:33.120 回答