在Android 1.6中启动没有过渡动画的新活动

时间:2010-12-16 12:11:20

标签: android animation android-activity android-intent

我知道从API级别5可以在意图中指定一个标志,以防止在我开始新活动时应用普通动画:

myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

然而,我的问题是:有没有办法在支持Android 1.6的应用程序中实现相同的功能?

5 个答案:

答案 0 :(得分:51)

在较新的版本中,您希望在开始活动后立即覆盖0,0的转换:

Intent i = new Intent(this, YourNewActivity.class); 
startActivity(i);
overridePendingTransition(0,0);

我在2.1和4.0.3上试过这个,它对我有用。 =)

我在文档here

中找到了它

答案 1 :(得分:20)

在正在开始的getWindow().setWindowAnimations(0);内使用此Activity

答案 2 :(得分:6)

此解决方案适用于我(Android 2.2):

Intent intent = new Intent(getContext(), YourClass.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);

答案 3 :(得分:5)

仅供参考,我是4.4.2,这是我发现的唯一有效的方法:

要阻止在启动活动的onCreate()中打开动画,请添加overridePendingTransition(0,0)。

要在finish()之后阻止关闭动画:,请立即调用overridePendingTransition(0,0)。

这些不起作用(至少不在我的4.4.2版本中):( 1)在onCreate()中调用getWindow()。setWindowAnimations(0)(传入一个非零数字DOES工作,但那是一个丑陋的黑客,因为它期待一个resId),(2)在startActivity()之后立即调用overridePendingTransition(0,0) - 动画仍然存在。

答案 4 :(得分:0)

将以下代码放在onCreate of Activity:

getWindow().setWindowAnimations(0);