* 0代表动画开始,1代表动画结束, Transformation是对动画所做的改变 Camera提供的方法:getMatrix(Matrix
* matrix)将Camera所做的变化应用到matrix上 rotateX(float deg)将目标组件沿着X轴进行旋转
* rotateY(float deg)将目标组件沿着Y轴进行旋转 totateZ(float deg)将组件沿着Z轴进行旋转
* translate(float x,float y,float z)将目标组件在三维空间内进行位移转换
* applyToCanvas(Canvas canvas)把Camera所做的变化应用到Canvas
* */
super.applyTransformation(interpolatedTime, trans);
camera.save();
// 把目标组件在三维视图中进行切换
// 在第一次调用的时候nterpolatedTime的值为0,相当于把view移动了10个像素,以后越来越少,一个周期过去,再变向转动
camera.translate(0.0f, 0.0f, (10 - 10 * interpolatedTime));
// camera.rotateX(360 * interpolatedTime);
camera.rotateY(360 * interpolatedTime);
// camera.rotateZ(360 * interpolatedTime);
Matrix matrix = trans.getMatrix();
camera.getMatrix(matrix);
// preTranslate是指在setScale前,平移,postTranslate是指在setScale后平移
// 注意他们参数是平移的距离,而不是平移目的地的坐标!
// 由于缩放是以(0,0)为中心的,所以为了把界面的中心与(0,0)对齐,就要preTranslate(-centerX,
// -centerY),
// setScale完成后,调用postTranslate(centerX,
// centerY),再把图片移回来,这样看到的动画效果就是activity的界面图片从中心不停的缩放了
// centerX和centerY是界面中心的坐标
matrix.preTranslate(-width, -height);
matrix.postTranslate(width, height);
camera.restore();
}
}
查看更多关于自定义Animation、3D动画旋转_html/css_WEB-ITnose的详细内容...