2010-12-01 208 views
1

我一直在玩Android的動畫框架,我發現下面的3D旋轉示例代碼:3D旋轉被翻譯

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Transition3d.html

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Rotate3dAnimation.html

它確實幾乎我想要什麼,但我希望ImageView在從A點轉換到B點時旋轉,並且它應該沿着它自己的中心(它正在移動)旋轉,而不是屏幕容器的中心。

有誰知道該怎麼做?

-Rachel

回答

0

那麼這是非常接近你發佈。本質上,你將旋轉矩陣乘以平移矩陣。這基本上是在封面下發生的。 Android通過它的API隱藏了您的細節:

Matrix matrix = transformation.getMatrix(); 
matrix.rotate(rotateX, rotateY); 
matrix.postTranslate(transX, transY); 

先旋轉然後翻譯將在翻譯它之前圍繞它自己的軸旋轉圖像。

+0

您是不是指matrix.setRotate(rotateX,rotateY)?我認爲這是2D旋轉壽命。我們不得不使用camera.rotateY來實現3D旋轉效果嗎? – 2010-12-01 17:45:44