Como girar uma tela em um ponto específico usando android.graphics.Camera.rotateX (angle)

Estou tentando usar a câmera (android.graphics.Camera e não a câmera de hardware) para girar uma tela de vistas em torno de um ponto específico, neste caso, no meio da tel

No dispatchDraw (Canvas canvas) - por uma questão de brevidade, deixo de fora todas as partes não importante

camera.save();
   camera.rotateX(0);
   camera.rotateY(0);
   camera.rotateZ(angle);
   camera.getMatrix(cameraMatrix);
 camera.restore(); 

 canvas.concat( cameraMatrix );

A tela gira, mas sempre no canto superior esquerd

NOTA: Como a tela foi construída para ser maior que a área de exibição, eu também preciso traduzir o resultado final para que fique centralizado na exibição, posso fazer isso com

canvas.translate(xOffset,yOffset) PRIOR to calling the camera methods

O

cameraMatrix.preTranslate(xOffset,yOffset) AFTER the camera methods

Ambos centralizam corretamente a tela na tela, mas não consigo obter o ponto de rotação como o centro da chamada camera.rotateZ (ângulo), tentei usar os métodos na amostra do Android 3D, mas enquanto eles parecem funcionar o eixo X / Y eles não parecem afetar o eixo Z

Qualquer ajuda seria apreciada, os documentos não são exatamente detalhado

questionAnswers(4)

yourAnswerToTheQuestion