参考github上的项目实现方法,地址(
https://github.com/ImmortalZ/TransitionHelper)
第一步添加依赖:
compile
'me.immortalz:transitionhelper:1.0.6'
第二步:
使用方法:
在需要跳转的activity界面,
Main2Activity是我将要跳转到的界面,bt是我点击跳转的ImageView
:
:
TransitionsHeleper.startAcitivty(MainActivity.this, Main2Activity.class, iv, "https://ss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/image/h%3D200/sign=4da4ff1895ef76c6cfd2fc2bad16fdf6/f9dcd100baa1cd11daf25f19bc12c8fcc3ce2d46.jpg");
在Main2Activity中:iv是我盛放转场图片的ImageView,注释掉的部分是为iv加载图片添加的动画,可以根据自己的需求添加不同的动画
这样就实现了转场动画效果。更多的功能可以参考上面的git地址,有更详细的说明TransitionsHeleper.getInstance() .setShowMethod(new InflateShowMethod(this, R.layout.activity_main2) { @Override public void loadCopyView(InfoBean bean, ImageView copyView) { // AnimatorSet set = new AnimatorSet(); // set.playTogether( // ObjectAnimator.ofFloat(copyView,"rotation",0,180), // ObjectAnimator.ofFloat(copyView, "scaleX", 1, 0), // ObjectAnimator.ofFloat(copyView, "scaleY", 1, 0) // ); // set.setInterpolator(new AccelerateInterpolator()); // set.setDuration(duration / 4 * 5).start(); Glide.with(Main2Activity.this) .load(bean.getImgUrl()) .error(R.mipmap.ic_launcher) .fitCenter() .into(copyView); } @Override public void loadTargetView(InfoBean bean, ImageView targetView) { Glide.with(Main2Activity.this) .load(bean.getImgUrl()) .error(R.mipmap.ic_launcher) .fitCenter() .into(targetView); } }) .show(this, iv);