如何在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); }
Jelly Bean使用ActivityOptions.makeCustomAnimation()方法添加对此的支持。 当然,因为它只是在果冻豆,实际上它是非常没有价值的。