android-Kamera setDisplayOrientation (90) schlägt in verschiedenen Geräten fehl

8

Ich habe ein Problem mit meiner Kamera-App. Kamera-Aktivität ist im Hochformat.So gab ich

%Vor%

Dies funktioniert gemäß den verschiedenen Posts in SO gut im Hochformat.

aber es funktioniert nie gut mit verschiedenen Geräten. Das Problem ist, Vorschau um 90 Grad nach links oder rechts gedreht. In Htc ist es in Ordnung. Aber mit Galaxy-Serien funktioniert es nicht.

Kann mir jemand helfen?

    
hacker 18.08.2012, 08:31
quelle

4 Antworten

1

Ich gab diese Antwort auf eine ähnliche Frage, aber als Sie sagen, es war auf einem HTC-Gerät. Ich würde empfehlen, dass Sie dem Rotationscode Haltepunkte hinzufügen und die Variablen untersuchen, während Sie das Gerät physisch drehen - dies kann helfen, die Unterschiede zu den Galaxy-Modellen zu identifizieren.

    
John J Smith 18.08.2012, 09:34
quelle
2

Legen Sie die Ausrichtung und die Vorschau auf folgende Arten fest: Verwenden Sie als Voraussetzung:

Erste Wege:

%Vor%

und

%Vor%

Zweite Möglichkeit:

%Vor%

Und dann in Ihrem PictureCallback Metadaten festlegen, um die Rotationsebene anzuzeigen:

%Vor%

Wenn jetzt auf der Landschaft basierende Geräte angezeigt werden, ist eine zusätzliche Überprüfung in OrientationEventListener erforderlich.

%Vor%

Vollständiger Code (ein bisschen verschwenderisch mit LC, aber demonstriert einfach den Ansatz)

%Vor%

Dritte Wege:

%Vor%     
Nirav Mehta 13.09.2014 11:26
quelle
1

Überprüfen Sie, ob die Option "Bildschirm automatisch drehen" in den Telefoneinstellungen aktiviert ist (Einstellungen & gt; Dislay oder Bildschirm - hängt von der Android-Version ab).

    
Bruno Siqueira 28.03.2014 13:45
quelle
0

Ich habe nur eine neue Lösung gepostet, die für mich funktioniert hat.

Grundsätzlich können Sie den Orientierungswert von der Camera.CameraInfo abrufen. Dadurch werden die Grade angegeben, die Sie für setDisplayOrientation verwenden müssen, damit das Bild ordnungsgemäß angezeigt wird. Wenn Sie die rückseitige Kamera verwenden, können Sie einfach setDisplayOrientation mit dem abgerufenen Wert verwenden. Aber wenn Sie die Kamera an der Vorderseite verwenden, müssen Sie sie etwas optimieren, da das Android-System das Bild wie ein Spiegelbild dreht Spiegel.

Unten Code funktionierte für mich und getestet auf 4 verschiedenen Geräten, darunter ein Nexus6 und Galaxy.

%Vor%     
velval 04.08.2016 03:33
quelle