Camera.SetDisplayOrientation(Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Achtung
deprecated
Legen Sie die Drehung im Uhrzeigersinn der Vorschauanzeige in Grad fest.
[Android.Runtime.Register("setDisplayOrientation", "(I)V", "")]
[System.Obsolete("deprecated")]
public void SetDisplayOrientation (int degrees);
[<Android.Runtime.Register("setDisplayOrientation", "(I)V", "")>]
[<System.Obsolete("deprecated")>]
member this.SetDisplayOrientation : int -> unit
Parameter
- degrees
- Int32
der Winkel, in dem das Bild im Uhrzeigersinn gedreht wird. Gültige Werte sind 0, 90, 180 und 270.
- Attribute
Hinweise
Legen Sie die Drehung im Uhrzeigersinn der Vorschauanzeige in Grad fest. Dies wirkt sich auf die Vorschauframes und das Bild aus, das nach der Momentaufnahme angezeigt wird. Diese Methode eignet sich für Hochformatanwendungen. Beachten Sie, dass die Vorschauanzeige von frontseitigen Kameras horizontal vor der Drehung gedreht wird, d. h. das Bild wird entlang der zentralen vertikalen Achse des Kamerasensors reflektiert. So können sich die Benutzer selbst als Spiegel betrachten.
Dies wirkt sich nicht auf die Reihenfolge des Bytearrays aus, das in PreviewCallback#onPreviewFrame
JPEG-Bildern oder aufgezeichneten Videos übergeben wird. Diese Methode darf während der Vorschau nicht aufgerufen werden.
Wenn Sie das Kamerabild in der gleichen Ausrichtung wie die Anzeige anzeigen möchten, können Sie den folgenden Code verwenden.
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
int rotation = activity.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
camera.setDisplayOrientation(result);
}
Ab API-Ebene 14 kann diese Methode aufgerufen werden, wenn die Vorschau aktiv ist.
<b>Hinweis: </b>Vor API-Ebene 24 lautet der Standardwert für die Ausrichtung 0. Ab API-Ebene 24 ist die Standardausrichtung so, dass Anwendungen im Erzwungenen Querformat eine korrekte Vorschauausrichtung aufweisen, die entweder die Standardeinstellung 0 oder 180 sein kann. Anwendungen, die im Hochformatmodus arbeiten oder die Ausrichtung ändern können, müssen diese Methode nach jeder Ausrichtungsänderung weiterhin aufrufen, um die korrekte Vorschauanzeige in allen Fällen sicherzustellen.
Java-Dokumentation für android.hardware.Camera.setDisplayOrientation(int)
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.