Android 三种原生转场动画
2019-01-20 本文已影响0人
无敌未央様
在A activity中:
switch (view.getId()) {
case R.id.tv_explode_transition:
mIntent.setClass(this, TransitionActivity.class);
mIntent.putExtra("transition", "explode");
startActivity(mIntent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
break;
case R.id.tv_slide_transition:
mIntent.setClass(this, TransitionActivity.class);
mIntent.putExtra("transition", "slide");
startActivity(mIntent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
break;
case R.id.tv_fade_transition:
mIntent.setClass(this, TransitionActivity.class);
mIntent.putExtra("transition", "fade");
startActivity(mIntent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
//public void startActivityForResult(Intent intent, int requestCode, Nullable Bundle options)
break;
}
在B activity中:
注意下面的代码一定要放在setContentView()前!!!
switch (transition) {
case "explode":
imageView.setBackgroundResource(R.drawable.circle_red);
Explode explode1 = new Explode();
getWindow().setEnterTransition(explode1);
break;
case "slide":
imageView.setBackgroundResource(R.drawable.circle_purple);
Slide slide = new Slide(Gravity.BOTTOM);
slide.setDuration(500L);//间歇时间
getWindow().setEnterTransition(slide);
break;
case "fade":
imageView.setBackgroundResource(R.drawable.circle_blue);
Fade fade = new Fade();
fade.setDuration(1000L);//间歇时间
getWindow().setEnterTransition(fade);
break;
}