您的位置:首页 > 其它

Activity 过度动画让界面切换实现如牛奶般润滑的切换

2017-03-03 18:04 330 查看
在Activity界面切换的时候 ,我们都是是通过统一的动画来管理activity 进入进出,这种动画都写在xml 文件里面,并在 开启activty 之后开始调用 动画的,(startActivity(context,class); overridePendingTransition(inId,outId))来进行界面的切换,但是这样的切换不免给用户带来的是生硬的切换,没有那么一丝的顺畅,所以在android 5.X中,Google 推出了 过度动画,用来帮助开发者实现友好的界面切换。


效果:



以下笔记均来自(《群英传 》徐宜生)

在 5.X中Android提供了 三种 Transition类型来供我们使用:

- 进入: 决定进入的 Activity 中的视图怎么进入屏幕。

- 退出: 决定退出的activity 中的视图怎么退出屏幕。

- 共享元素: 共享元素决定了两 个Activity之间的的动画如何过度的,如何共享视图。

在进入和退出的时候包含三种效果:

explode(分解) ————> 从屏幕中间进入或退出,进入是从中间开始向两边扩展,退出也是从中间开始往两边扩散消失。

slide(滑动) ————> 从屏幕的边缘进入或退出。

fade(淡出) ————> 从透明到不透明的现实到屏幕上添加视图或者移除。

共享元素包括:

ChangeBounds ————> 改变目标视图的布局边界。

ChangeClipBounds————> 裁剪目标视图边界。

ChangeTransform————> 改变目标视图的缩放比例和旋转角度

ChangeImageTransform ————> 改变目标图的大小和缩放比例。

如何使用动画呢?

这个就是直接在 startActivity()里面直接启动就好了;

比如我们在A界面要启动B界面

Intent intent = new Intent(this, Transitions.class);

intent.putExtra("flag", 2);

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());


这样只能标志我们打开的另一个界面使用过度动画,那么如何显示呢,其实还是要在B Activity 里面通

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


这个设置一定要在 setContentView(View) 这前,并且还要和设置没有标题栏一样设置一个标记

接下类进入 B Acitivyt就有动画了。退出动画和这个差不多 就是在B Activity里面设置的方法不一样。

getWindow().setEnterTransition(new Slide()); ————> 设置进入的动画

getWindow().setExitTransition(new Slide()); ————>设置退出的动画。

设置动画也可以在xml 里面通过主题来设置动画。但是style.xml要创建在 values-v21的style.xml文件中 。

实现共享元素:

需要给视图需要共享的控件通过 增加相应的属性:

android:transitionName=”xxx”

在 B Activity 中给同样需要共享的控件加入同样的属性,在这里要注意的这两个属性的名字要完全相同,否则就会找不到共享元素。

共享元素只需要再 A Activity 里面开启就好了。

Intent intent = new Intent(this, Transitions.class);

intent.putExtra(“flag”, 3);

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, view, “share”).toBundle());

如果是多个控件的话就需要使用可变参数了,上面那个方法还是一个多变参数的方法,也就是说可以同时接受多个参数:

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this,new Pair(view,”share”),new Pair(fabButton,”fab”)).toBundle());

到此过度动画就结束的,但是里面的细节还待慢慢的挖掘 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐