项目地址:https://github.com/JeasonWong/SignUpTransition
老规矩,先上效果。
先说下实现细节
- 『SIGN UP』字符的位移
- 圆圈扩散动画
- 注册->登录的动画
- 背景上升顶部图标渐变
此处插一下嘴~ 动画效果我是在materialup上看到的,实现后在设计师的效果后留言说我实现了他的效果,然后他也回应了下,我相信这样的结果也会是设计师和程序员感到最欣慰的结果。
整个过度动画只要实现这些就好了,然后再说下我使用到的技术
- 字符唯一、背景上升使用Scene
- 登录动画使用属性动画
- 圆圈扩散使用的ViewAnimationUtils
登录动画就是一个简单的Loading效果,在这篇文章中不是重点,我不会赘述,如果想学习,可以看我之前写的两篇手摸手来学习做Loading动画。
好的,手摸手开始了。
创建三个Scene,对应着:
- 注册静态页面
|
|
- 登录页面
|
|
- 主页面
|
|
三个Scene中RelativeLayout的id取为一样,这样在之后操作Transition时才会有效果,这里很容易理解。
在ManActivity中有个用来展示各个Scene的ViewGroup,我这里用的FramLayout。
|
|
那么在xml中该干的事我们都干完了,再回顾一下,分别是创建Scenes,创建展示Scene的ViewGroup。
显然接下来就是逻辑控制各个Scene的转换了。
MainActivity中初始化三个Scene:
|
|
重点
- 使用Scene.getSceneForLayout创建Scene
- 使用TransitionManager.go()来控制Scene之间的转换
- 过渡Transition直接使用的ChangeBounds
- 使用Scene.setEnterAction()来做一些进入Scene时的操作
- 属性动画哪里都有需求 = =
以上就是Scene过渡的关键。
关于Scene的补充学习,可以看下Google放出来的官方demo,他还实现了一个自定义的Transition,android-CustomTransition。
打造一个这样炫酷的效果其实并不难,我也是现学现用,只要把已知知识点进行组合,一定能发挥大能量。
如果有更好的思路,欢迎交流,开源本身就是大家互相喷喷,互相进步嘛,
对各种动画感兴趣的朋友欢迎加群479729938进行交流,
期待各种好看,好玩,实用的动画~