Camera.Parameters.SetRotation(Int32) Methode

Definition

Achtung

deprecated

Legt den Drehwinkel im Uhrzeigersinn in Grad relativ zur Ausrichtung der Kamera fest.

[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

Parameter

rotation
Int32

Der Drehwinkel in Grad relativ zur Ausrichtung der Kamera. Drehung kann nur 0, 90, 180 oder 270 sein.

Attribute

Ausnahmen

wenn der Drehungswert ungültig ist.

Hinweise

Legt den Drehwinkel im Uhrzeigersinn in Grad relativ zur Ausrichtung der Kamera fest. Dies wirkt sich auf die von JPEG PictureCallbackzurückgegebenen Bilder aus. Der Kameratreiber kann die Ausrichtung im EXIF-Header festlegen, ohne das Bild zu drehen. Oder der Treiber kann das Bild und die EXIF-Miniaturansicht drehen. Wenn das JPEG-Bild gedreht wird, fehlt die Ausrichtung in der EXIF-Kopfzeile oder 1 (Zeile #0 ist oben und Spalte #0 ist links).

Wenn Anwendungen das Bild drehen möchten, um die Ausrichtung der Benutzer anzuzeigen, sollten Apps verwenden android.view.OrientationEventListener und verwenden.android.hardware.Camera.CameraInfo Der Wert von OrientationEventListener ist relativ zur natürlichen Ausrichtung des Geräts. CameraInfo.orientation ist der Winkel zwischen Kameraausrichtung und natürlicher Geräteausrichtung. Die Summe der beiden ist der Drehwinkel für die rückgerichtete Kamera. Der Unterschied der beiden ist der Drehwinkel für die Frontkamera. Beachten Sie, dass die JPEG-Bilder von frontgerichteten Kameras nicht wie in der Vorschauansicht gespiegelt werden.

Angenommen, die natürliche Ausrichtung des Geräts ist hochformat. Das Gerät wird um 270 Grad im Uhrzeigersinn gedreht, sodass die Geräteausrichtung 270 beträgt. Angenommen, ein rückgerichteter Kamerasensor ist im Querformat montiert, und die obere Seite des Kamerasensors wird am rechten Rand der Anzeige in natürlicher Ausrichtung ausgerichtet. Die Kameraausrichtung beträgt also 90. Die Drehung sollte auf 0 (270 + 90) festgelegt werden.

Der Referenzcode lautet wie folgt.

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 Dokumentation für android.hardware.Camera.Parameters.setRotation(int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen

  • OrientationEventListener
  • <xref:Android.Hardware.Camera.GetCameraInfo(System.Int32%2c+Android.Hardware.Camera.CameraInfo)>