最近的项目中要用到3D旋转,搞了两天终于弄出来了,总结一下以供以后重用。
一、知识点介绍
3D旋转效果主要是借助了自定义Animation动画实现。通过继承Animation类,重写applyTransformation
1、applyTransformation
参数interpolatedTime表示执行进度(取值为0-1,1的时候动画结束),t为动画变化的载体。
下面具体介绍下这两个参数:
1)、interpolatedTime是Interpolator计算的结果。Interpolator是一个接口,主要用来对动画的播放的时间进度进行控制,有如下几种播放效果:
LinearInterpolator:匀速播放,为默认效果;
AccelerateInterpolator:加速播放;有一个参数factor,为加速因子,值越大加速效果越明显。
DecelerateInterpolator:减速播放;
AccelerateDecelerateInterpolator:先加速后减速播放,即中间播放得最快;
CycleInterpolator:循环播放;
可以通过 animation.setInterpolator( new AccelerateInterpolator());来设置animation的播放进度。
本文介绍了如何在Android中实现3D旋转效果,主要利用自定义Animation和Camera类。通过重写applyTransformation方法,结合Interpolator控制动画进度,使用Transformation作为动画变化的载体。同时,详细讲解了Camera类的平移、旋转方法,以及Matrix类在图像变换中的应用。最终提供了一段自定义Animation的源代码示例,解释了为何需要分两步旋转来避免图像反转问题,并给出了相关参考资料。
最低0.47元/天 解锁文章
382

被折叠的 条评论
为什么被折叠?



