Activity过渡动画详解
来源:互联网 发布:mysql alter修改表数据 编辑:程序博客网 时间:2024/06/07 23:20
Android5.x后,Google为Activity设计了丰富的转场动画效果。今天就来研究一下
三种Transition类型
1、进入:一个进入的过渡动画决定activity中的所有视图如何进入屏幕
2、退出:一个退出的过渡动画决定一个activity中的所有视图怎么退出屏幕
3、共享元素:一个共享元素过度动画决定两个activitys之间的过渡会怎么共享他们的视图
进入和退出包括如下三种效果:
explode(分解)-----------从屏幕的中间进入或者退出,移动视图
slide(滑动)-------------从屏幕边缘进入或退出,移动视图
fade(淡出)------------通过改变屏幕上视图的不透明度达到添加或者移除视图
共享元素包括:
changeBounds------------改变目标视图的布局边界
changeClipBounds-------------裁剪目标视图边界
changeTransform--------------改变目标视图的缩放比例和旋转角度
changeimageTransform-------------改变目标图片的大小和缩放比例
了解了上边的动画种类,下面来看看如何使用:
过渡动画的使用
进入退出的使用
比如从A页面跳转到B页面,只需要将startActivity(intent);修改为:startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
而在B页面,我们只需要添加上如下代码:getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
然后就是设置进入B的具体动画效果了:getWindow().setEnterTransition(new Explode());
同时退出B的动画效果可以通过:getWindow().setExitTransition(new Explode());
其他的效果是同样的方式,不做赘述。后边给出demo源码
共享的使用
所谓共享,顾名思义,肯定要有一个纽带让大家链接上的。那么这个纽带就是transitionName,一定要保证两个共享元素的transitionName命名相同,否则系统是找不到这个共享元素的。
如果只要一个共享元素,在A页面只需要写上:startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this,view,"share").toBundle());即可增加的两个参数:view就是共享的view,share就是transitionName的命名
如果有多个共享元素,就需要通过Pair.create()来创建多个共享元素,代码如下:
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this,
//创建多个共享元素
Pair.create(view,"share"),Pair.create(fabs,"fab")).toBundle());
最后补充上demo源码,代码比较简单:https://github.com/loveDeeny/ActivityTransformAniTest
zuihou
- Activity过渡动画详解
- 关闭Activity过渡动画
- Activity过渡动画
- Activity过渡动画
- Activity过渡的动画
- Activity的过渡动画
- Activity过渡动画
- 安卓 activity过渡动画
- TransitionHelper activity 跳转过渡动画
- Android动画--Activity过渡动画 Transition
- CSS3过渡动画transition详解
- Android 5.X 新特性详解(三)——Activity过渡动画
- Android 5.X 新特性详解(三)Activity过渡动画
- Android Activity间的过渡动画
- Android Activity间的过渡动画
- Android 5.0学习之Activity过渡动画
- Android 5.x的Activity过渡动画.
- Android 5.0学习之Activity过渡动画
- [分享]把程序锁定到Win7任务栏,该怎么处理
- iBatis的分页
- NSCache
- 聊聊创业早期的人才招聘
- certain foods to create brand-new delicious
- Activity过渡动画详解
- iOS性能优化基础篇(0)
- Nginx+passenger部署ruby on rails应用
- PG学习异常总结篇:遇到并处理过的异常-持续更新
- PHPcms微信支付
- 数据库(三)关系数据库标准语言SQL(1)
- bug
- DAY28:leetcode #41 First Missing Positive
- Android开发V4包和V7包版本不一遇到的问题填过的坑