Kamera setDisplayOrientation() im Portrait-Modus Bricht Seitenverhältnis

Ich versuche, Kamera-Vorschau zu arbeiten, richtig im portrait-Modus, wo die Tätigkeit selbst ist erlaubt, ändern Sie die Ausrichtung in der Regel (d.h., nicht gesperrt werden, um Landschaft).

Den Einsatz von setDisplayOrientation() ernst bricht das Verhalten der Vorschau, aber.

Diese können nachgewiesen werden durch die Google-eigenen ApiDemos. Das erste Bild basiert auf der CameraPreview von der android-17 Ausgabe des ApiDemos Beispiel-Projekt, wo die einzige änderung, die ich gemacht wurde, zu entfernen android:orientation="landscape" aus dieser Tätigkeit den Eintrag im manifest. Das folgende Bild ist ein screenshot von dem, was erscheint auf dem display ein Nexus 4, mit Android 4.2, mit der Kamera zeigte auf eine 8,5" Quadrat Papier:

Kamera setDisplayOrientation() im Portrait-Modus Bricht Seitenverhältnis

Was nicht eindeutig aus, die Vorschau ist, dass es um 90 ° gedreht ist. Der Strumpf gekleidete Füße, die Sie sehen, auf der rechten Seite des Bildes waren tatsächlich unten auf den Platz.

Die Lösung für dieses, zumindest für landscape-Modus ist die Verwendung setDisplayOrientation(). Aber, wenn Sie ändern die Preview innere Klasse CameraPreview zu haben mCamera.setDisplayOrientation(90); erhalten Sie:

Kamera setDisplayOrientation() im Portrait-Modus Bricht Seitenverhältnis

Allem, der Platz ist nicht mehr Platz.

Dieser verwendet die gleichen SurfaceView Größe wie vor. Ich habe reproduziert in diesem Szenario mit einigen anderen Codes auch außerhalb von ApiDemosund ich bekomme das gleiche Verhalten mit TextureView im code.

Dachte ich kurz, dass das Problem könnte sein, dass getSupportedPreviewSizes() vielleicht zurück, andere Werte auf der Grundlage setDisplayOrientation()aber ein kurzer test zeigt, dass dies nicht der Fall ist.

Jemand eine Idee, wie man setDisplayOrientation() arbeiten im portrait-Modus ohne Zerstörung das Seitenverhältnis der Bilder über geschoben, um die Vorschau?

Dank!

InformationsquelleAutor der Frage CommonsWare | 2013-06-15

Schreibe einen Kommentar