用旋转动画切换活动

时间:2010-11-24 09:36:35

标签: java android animation android-activity

有人知道如何使用旋转动画启动新活动吗?

我会试着解释一下我想做什么:

例如我在skd示例“apidemos”中查找了android应用程序示例,我找到了一个名为com.exemple.android.apis.animation.Rotate3dAnimation.javacom.exemple.android.apis.animation.Transition3d.java的类。这些类允许我在具有旋转效果的图像之间切换。

我想知道是否有办法做同样的事情而不是图像,我将是活动(新的布局)。

2 个答案:

答案 0 :(得分:3)

窗口管理器此时不支持3d转换;由于每个活动都是一个窗口,活动之间的动画是窗口动画,因此它们仅限于窗口管理器支持的内容。

答案 1 :(得分:0)

这就是我们如何做到这一点。 假设我们想要从活动A切换到B.首先,我们将为活动A设置动画,然后我们将在重写的函数“onAnimationFinished”中启动活动B.这将确保仅在活动A的动画结束后才启动活动B.

// we will only animate activity A here.
// The activity B will be animated from its onResume() - be sure to implement it.

final Intent intent = new Intent(getApplicationContext(), B.class);
// disable default animation for new intent
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
//Animate A
ActivitySwitcher.animationOut(findViewById(R.id.A), getWindowManager(), new ActivitySwitcher.AnimationFinishedListener() {
        @Override
        public void onAnimationFinished() {
            // Start activity B
            startActivity(intent);
        }
    });

现在覆盖活动B的“onResume”功能

@Override
protected void onResume() {
// animateIn this activity
ActivitySwitcher.animationIn(findViewById(R.id.help_top), getWindowManager());
    super.onResume();
}

您可以在此处查看工作示例

http://blog.robert-heim.de/karriere/android-startactivity-rotate-3d-animation-activityswitcher/comment-page-1/#comment-12025