我知道从API级别5可以在意图中指定一个标志,以防止在我开始新活动时应用普通动画:
myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
然而,我的问题是:有没有办法在支持Android 1.6的应用程序中实现相同的功能?
答案 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);