Comment faire pivoter une toile à un point spécifique en utilisant android.les graphiques.De la caméra.rotateX(angle)

Je suis en train d'utiliser l'Appareil (android.les graphiques.L'appareil n'est pas le matériel de l'appareil photo) pour faire pivoter une vue sur toile autour d'un point précis, en l'occurrence le milieu de la toile.

Dans dispatchDraw(Canvas canvas) -- pour des raisons de concision, je pars tous les non parties importantes.

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

 canvas.concat( cameraMatrix );

La toile tourne, mais toujours à partir du coin supérieur gauche.

REMARQUE: Parce que la toile a été construit pour être plus grande que la zone d'affichage, j'ai aussi besoin de traduire le résultat final afin qu'il soit centré dans l'écran, je peux le faire avec

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

OU

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

À la fois de centrer correctement la toile de l'écran mais je n'arrive pas à obtenir le point de rotation pour être le centre de la caméra.rotateZ(angle) appel, essayé d'utiliser les méthodes de la 3D android de l'échantillon, mais tandis qu'ils semblent travailler pour l'axe X /Y ne semble pas affecter l'axe Z

Toute aide serait appréciée, le doc ne sont pas très détaillé.

InformationsquelleAutor Idistic | 2011-07-07