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;
}
上一篇 下一篇

猜你喜欢

热点阅读