先上效果图
- 5.0的Material design新特性已经出来很长时间了,相信很多朋友也开始在项目中使用了,常用的ToolBar,Snacker,TextInputLayout,Floating Action Button界面操作按钮,TabLayout滑动切换布局,NavigationView导航抽屉等相信在网上随便一搜都是一大堆使用教程。
之前看到这个酷炫的登录注册界面便在自己的项目中实现了下,这里拿出来和大家分享分享以及使用时的注意事项。
使用过程中的知识点以及注意事项:
因为至少是安卓5.0,所以:minSdkVersion 21
使用到的控件:
CardView
,TextInputLayout
,FloatingActionButton
登录界面:
- android5.0 引入了Z轴的概念,所以有两个新属性值得注意:
- android:elevation 设置该组件“浮”起来的高度,设置该属性可以让该组件呈现3D效果。
- android:translationZ 设置该组件在Z方向(垂直屏幕方向)上的位移。
跳转到注册界面使用到了新的转场动画 -ActivityOptions,可以参考这篇博客http://blog.csdn.net/qibin0506/article/details/48129139/
跳转代码
getWindow().setExitTransition(null);
getWindow().setEnterTransition(null);
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.LOLLIPOP) {
ActivityOptions options =ActivityOptions.makeSceneTransitionAnimation(this, fab, fab.getTransitionName());
startActivity(new Intent(this, RegisterActivity.class), options.toBundle());
} else {
DevUtil.gotoActivity(this, RegisterActivity.class);
}
注册界面
XML布局注意点:
清单文件中
android:theme="@style/Translucent"
布局跟标签中:
tools:context="com.****.****.Activity.LoginActivity"
这个属性tools:context
这个属性通常在一个布局XML文件的根元素中设置,记录了这个布局关联到哪一个activity(因为一个布局在设计时可以被多个布局使用),当前的Layout所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么会根据这个Theme来渲染你当前的Layout。代码中的关键就是动画 - Transition
-
当一个场景改变的时候,transition主要负责:
- 捕捉每个View在开始场景和结束场景时的状态。
- 根据两个场景(开始和结束)之间的区别创建一个Animator。
-
Activity Transition提供了三种Transition类型:
- 进入:一个进入的过渡(动画)决定activity中的所有的视图怎么进入屏幕。
- 退出:一个退出的过渡(动画)决定一个activity中的所有视图怎么退出屏幕。
- 共享元素:一个共享元素过渡(动画)决定两个activities之间的过渡,怎么共享(它们)的视图。
-
这里我们用的是 共享元素动画(使用方法):
- 定义你的过渡动画XML资源
- 使用android:transitionName属性给两个布局中的共享元素指定一个相同的名字
- 使用ActivityOptions.makeSceneTransitionAnimation() 方法