android - 在Android中调用另一个 Activity 时如何提供动画?

标签 android animation android-activity

我有两个 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/

相关文章:

java - android Activity 切换不起作用

java - 安卓开发 : How To Use onKeyUp?

android - Android API 和 Google API 有什么区别?

java - Android Gradle list 合并 : Override 'uses-permission' attribute coming from a library

android - 三星 S4 Android 4.3 上未显示自定义 Web 应用程序主屏幕图标

android - 首次启动 Activity 期间自定义 View 动画不流畅

wpf - 使用数据模板将 View 与 View 模型相关联时,如何动画化从一个 View 到另一个 View 的过渡

android旋转动画在中断时获取当前角度/度数

java - 为什么 Android 中的 Activity 对象被转换为接口(interface)?

android-activity - Android 使用 onBackPressed() 避免 onDestroy()