今天兴趣来潮,撸了一个动画特效,我把他应用在登录的界面,当然也可以用在其他地方,先来预览一下我的特效吧
使用方法
在build.gradle里面配置如下
生成一个Rotate3D对象
这里面必须要设置的参数是bindParentView,bindPositiveView,bindNegativeView,这些分别是父类View,正面View,以及旋转后的反面View,有提供可选参数
setDuration 设置动画时间
setDepthZ 设置Z轴深度
可选参数未设置的话就使用默认的
启动动画
实现原理
由于android提供的动画 alpha(淡入淡出),translate(位移),scale(缩放大小),rotate(旋转),这些都是平面上的动画,那想要做3D立体的动画,我们就需要从写animation,3D立体动画用到android的Camera库,Camera提供了三种旋转方法:
rotateX()
rotateY()
rotateX()
调用这三种方法,传入旋转角度参数,即可实现视图沿着坐标轴旋转的功能。
实现的核心代码
总结
代码中的作用我都有写注释,所以在这里就不多解释了,有的时候,我们看一些特效觉得做起来一定很麻烦,其实只要你掌握其实现原理,并不是很难,所以给大家一句忠告,多读源码,对技术的提升很有帮助。