如何在Android中调用另一个活动时提供animation?

我有两个活动A和B.我想有缩小animation时,活动A调用B和最大化animation时,活动B调用A.我不需要这个animationXML文件。

当我们在Android中调用另一个Activity时,会给出它的默认animation,然后调用缩小animation。

我想要的是,默认animation不应该发生,我想要的animation应该发生。

我们可以在调用另一个活动时给予animation吗?

由于API 16可以在调用Context.startActivity(Intent,Bundle)或相关方法时提供一个活动选项包。 它是通过ActivityOptions构build器创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构build器和ActivityOptionsCompat的其他方法。


API 5+:

对于定位API级别5+的应用,有活动overridePendingTransition方法。 传入和传出animation需要两个资源ID。 ID为0将禁用animation。 在startActivity调用之后立即调用它。

即:

 startActivity(new Intent(this, MyActivity.class)); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 

API 3+:

您可以使用Intent.FLAG_ACTIVITY_NO_ANIMATION标志防止默认animation(从右侧滑入)。

即:

 Intent myIntent = new Intent(context, MyActivity.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); context.startActivity(myIntent); 

那么在你的活动中你只需要指定你自己的animation。

这也适用于1.5 API(3级)。

您必须使用OverridePendingTransition方法来实现它,它在Activity类中 。 apidemos示例的res / anim文件夹中的示例animation。 核实。 不仅仅是在ApiDemos / App / Activity / animation中检查演示。

例:

 @Override public void onResume(){ // TODO LC: preliminary support for views transitions this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } 

写了一个教程,以便你可以animation你的活动的进出,

请享用:

http://blog.blundellapps.com/animate-an-activity/

Jelly Bean使用ActivityOptions.makeCustomAnimation()方法添加对此的支持。 当然,因为它只是在果冻豆,实际上它是非常没有价值的。