3D旋转效果(转自altair86)

mCamera.translate(degrees / 90 * centerX*2, 0, 0);

mCamera.rotateY(degrees *params);

这个是主要的旋转代码,沿x轴平移,绕Y轴旋转;camera的动作其实就是产生一个matrix,camera的translate相当于matrix的setScale,而缩放是以(0,0)点为中心的,想要实现当前屏的VIEW的右边界从屏幕右侧平移至左侧(即实现旋转不出屏),即旋转轴为右边界,那就是要将此VIEW的右边界中心点移动到(0,0),则有:
matrix.preTranslate(-centerX*2, -centerY);

这样图片就被移动过了,所以调用:
matrix.postTranslate(centerX*2, centerY);

这么操作后,图片的动画效果就是沿右边界的。
注:centerX和centerY是界面中心的坐标。

同理,下一个VIEW是要沿左边界旋转的,则:
matrix.preTranslate(0, -centerY);

matrix.postTranslate(0, centerY);

猜你喜欢

转载自worm.iteye.com/blog/1733382