sun*_*nil 113 animation android android-activity
我有两个活动A和B.我希望在活动A调用B时收缩动画,并在活动B调用A时最大化动画.我不需要动画xml文件.
当我们在Android中调用另一个Activity时,它会提供默认动画,然后调用缩小动画.
我想要的是不应该发生默认动画,我想要的动画应该发生.
我们可以在调用另一个Activity时实际给出动画吗?
whl*_*hlk 139
从API 16开始,您可以在调用Context.startActivity(Intent,Bundle)或相关方法时提供活动选项包.它是通过ActivityOptions构建器创建的:
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());
Run Code Online (Sandbox Code Playgroud)
如果您使用支持库,请不要忘记检查ActivityOptions构建器和ActivityOptionsCompat的其他方法.
API 5+:
对于针对API级别5+的应用,有"活动" overridePendingTransition
方法.传入和传出动画需要两个资源ID.id 0
将禁用动画.通话结束后立即拨打此startActivity
电话.
即:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
API 3+:
您可以使用Intent.FLAG_ACTIVITY_NO_ANIMATION
意图中的标志阻止默认动画(从右侧滑入).
即:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)
然后在你的Activity中你只需要指定你自己的动画.
这也适用于1.5 API(级别3).
Pra*_*een 78
您必须使用OverridePendingTransition方法来实现它,它位于Activity类中.apidemos示例的res/anim文件夹中的示例动画.核实.不仅仅是在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);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
129771 次 |
最近记录: |