界面Activity切换滑动的效果实现:
1. 在styles.xml文件中添加下面一行代码,表示激活Activity中元素的过渡效果:
<item name="android:windowContentTransitions">true</item>
2.启动Aty2代码:
startActivity(new Intent(this, Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
2. 在aty2中加入入场动画(滑动效果以及时间)
getWindow().setEnterTransition(new Slide().setDuration(2000));
getWindow().setExitTransition(new Slide().setDuration(2000));
淡入淡出效果
getWindow().setEnterTransition(new Fade().setDuration(2000));
getWindow().setExitTransition(new Fade().setDuration(2000));
共享元素效果:
1. 相同控件类型添加android:transitionName="share"属性字符串要一致
2. 启动aty代码startActivity(new Intent(this,Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this,view,"share").toBundle());
需要将控件转化为View作为参数view
多个共享元素启动代码
startActivity(new Intent(MainActivity.this, thirdAty.class),
ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, Pair.create(view1,"v1").create(view2 ,"v2")).toBundle());
场景切换(scene可以从xml文件中加载)
scene1=Scene.getSceneForLayout(fl,R.layout.scene1,this);
scene2=Scene.getSceneForLayout(fl,R.layout.scene2,this);
Transition transition=new ChangeBounds();
transition.setDuration(DateUtils.SECOND_IN_MILLIS);
transition.setInterpolator(new AccelerateDecelerateInterpolator());
TransitionManager.go(scene1);
//切换
TransitionManager.go(scene2,transition);
场景切换动画(创建一个View圆形出现的动画)
//动画
final Animator animator= ViewAnimationUtils.createCircularReveal(fl,x,y,startRadius,endRadius);