您的位置:首页 > 移动开发 > Android开发

Android5.0之Activity的转场动画

2017-07-05 21:16 337 查看
startActivity(new Intent(this, Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle());  

<item name="android:windowContentTransitions">true</item>  

1.分解

getWindow().setEnterTransition(new Explode().setDuration(2000));  

getWindow().setExitTransition(new Explode().setDuration(2000));  

2.滑动进入

getWindow().setEnterTransition(new Slide().setDuration(2000));  

getWindow().setExitTransition(new Slide().setDuration(2000
4000
));  

3.淡入淡出

getWindow().setEnterTransition(new Fade().setDuration(2000));  

getWindow().setExitTransition(new Fade().setDuration(2000));  

2.2 共享元素动画

使用共享元素动画的时候,我们需要首先给MainActivity和Main2Activity中的两个button分别添加Android:transitionName="mybtn"属性,并且该属性的值要相同,这样系统才知道这两个控件是共享元素。设置完成之后,接下来就是启动Activity的代码了,如下:
[java] view
plain copy
 print?

startActivity(new Intent(this,Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this,view,"mybtn").toBundle());  

还是上面那种启动方式的重载方法,只不过这里多了两个参数,view表示MainActivity中的共享元素(就是那个Button),第二个参数表示布局文件中transitionAnimation属性的值。OK,就这么简单。
这时有的筒子可能有疑问了,那我如果两个页面中有多个共享元素该怎么办呢?简单,android:transitionName属性还像上面一样设置,然后在启动Activity时我们可以通过Pair.create方法来设置多个共享元素,如下:

[java] view
plain copy
 print?

startActivity(new Intent(this, Main2Activity.class),  

                ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(((View) iv1),"myiv"), create(((View) textView),"mytv")).toBundle());  

Pair.create方法中有两个参数,第一个是共享元素的实例(注意要是View类型),第二个参数是该View的transitionAnimation属性的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: