我有两个 Activity A 和 B。我想在什么时候有收缩动画 Activity A 调用 B 并在 Activity B 调用 A 时最大化动画。我不需要动画 xml 文件。
当我们在 Android 中调用另一个 Activity 时,它会给出默认动画,然后调用收缩动画。
我想要的是默认动画不应该出现,我想要的动画应该出现。
我们真的可以在调用另一个Activity时给动画吗?
最佳答案
从 API 16 开始,您可以在调用 Context.startActivity(Intent, Bundle) 时提供 Activity 选项包或相关方法。它是通过 ActivityOptions 创建的 build 者:
Intent myIntent = new Intent(context, MyActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
context.startActivity(myIntent, options.toBundle());
不要忘记查看 ActivityOptions 构建器的其他方法和 ActivityOptionsCompat如果您使用的是支持库。
API 5+:
对于面向 API 级别 5+ 的应用,有 Activity overridePendingTransition
方法。传入和传出动画需要两个资源 ID。 0
的 id 将禁用动画。在 startActivity
调用之后立即调用它。
即:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3+:
您可以在您的 Intent 中使用 Intent.FLAG_ACTIVITY_NO_ANIMATION
标志来阻止默认动画(从右侧滑入)。
即:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
然后在您的 Activity 中,您只需指定自己的动画即可。
这也适用于 1.5 API(级别 3)。
关于android - 在Android中调用另一个 Activity 时如何提供动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651360/