我想使用相機(android.graphics.Camera不是硬件相機)來旋轉視圖畫布周圍的特定點,在這個例子中,畫布的中間。如何在特定點使用android.graphics.Camera.rotateX(角度)旋轉畫布
在dispatchDraw(畫布畫布) - 爲了簡便起見,我忽略了所有非重要的部分。
camera.save();
camera.rotateX(0);
camera.rotateY(0);
camera.rotateZ(angle);
camera.getMatrix(cameraMatrix);
camera.restore();
canvas.concat(cameraMatrix);
畫布旋轉,但始終從左上角。
注:由於帆布已經被構建爲比顯示區域我還需要翻譯的最終結果,使其在顯示中心的大,我可以做到這一點無論
canvas.translate(xOffset,yOffset) PRIOR to calling the camera methods
OR
cameraMatrix.preTranslate(xOffset,yOffset) AFTER the camera methods
兩者正確地居中在顯示畫布但我似乎無法得到旋轉點是用於camera.rotateZ(角度)呼叫中心,使用3D機器人樣品中的方法嘗試,但而他們似乎爲X/Y軸工作,他們似乎沒有影響Z軸
任何幫助將不勝感激,文檔的不完全冗長。
感謝你好這個職位,但我無法理解的會是怎樣平移X,平移Y的值和centerScaled變量。你能解釋我嗎? – Dhaval
@Dhaval請檢查http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html – Ankit
其實,這似乎是正確的解決方案。由於'Camera#applyToCanvas()'可能不適用於某些ICS設備 –