Camera.Parameters.SetRotation(Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Attention
deprecated
Définit l’angle de rotation au niveau des aiguilles d’une montre en degrés par rapport à l’orientation de la caméra.
[Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")]
[System.Obsolete("deprecated")]
public virtual void SetRotation(int rotation);
[<Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")>]
[<System.Obsolete("deprecated")>]
abstract member SetRotation : int -> unit
override this.SetRotation : int -> unit
Paramètres
- rotation
- Int32
Angle de rotation en degrés par rapport à l’orientation de la caméra. La rotation ne peut être que 0, 90, 180 ou 270.
- Attributs
Exceptions
si la valeur de rotation n’est pas valide.
Remarques
Définit l’angle de rotation au niveau des aiguilles d’une montre en degrés par rapport à l’orientation de la caméra. Cela affecte les images retournées par JPEG PictureCallback. Le pilote de caméra peut définir l’orientation dans l’en-tête EXIF sans faire pivoter l’image. Ou le pilote peut faire pivoter l’image et la miniature EXIF. Si l’image Jpeg est pivotée, l’orientation dans l’en-tête EXIF est manquante ou 1 (la ligne #0 est supérieure et la colonne #0 est côté gauche).
Si les applications souhaitent faire pivoter l’image pour correspondre à l’orientation de ce que les utilisateurs voient, les applications doivent utiliser android.view.OrientationEventListener et android.hardware.Camera.CameraInfo. La valeur d’OrientationEventListener est relative à l’orientation naturelle de l’appareil. CameraInfo.orientation est l’angle entre l’orientation de l’appareil photo et l’orientation naturelle de l’appareil. La somme des deux correspond à l’angle de rotation de la caméra arrière. La différence entre les deux est l’angle de rotation de la caméra frontale. Notez que les images JPEG des caméras frontales ne sont pas mises en miroir comme dans l’affichage en préversion.
Par exemple, supposons que l’orientation naturelle de l’appareil soit portrait. L’appareil est pivoté de 270 degrés dans le sens des aiguilles d’une montre, de sorte que l’orientation de l’appareil est de 270 degrés. Supposons qu’un capteur de caméra arrière est monté dans un paysage et que le côté supérieur du capteur de la caméra est aligné sur le bord droit de l’affichage en orientation naturelle. L’orientation de la caméra est donc 90. La rotation doit être définie sur 0 (270 + 90).
Le code de référence est le suivant.
public void onOrientationChanged(int orientation) {
if (orientation == ORIENTATION_UNKNOWN) return;
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
orientation = (orientation + 45) / 90 * 90;
int rotation = 0;
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
rotation = (info.orientation - orientation + 360) % 360;
} else { // back-facing camera
rotation = (info.orientation + orientation) % 360;
}
mParameters.setRotation(rotation);
}
Java documentation pour android.hardware.Camera.Parameters.setRotation(int).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
S’applique à
Voir aussi
- OrientationEventListener
- <xref:Android.Hardware.Camera.GetCameraInfo(System.Int32%2c+Android.Hardware.Camera.CameraInfo)>