Nexus 5x Reverse Landscape Sensor Fix in einer Android-Kamera-Vorschau-App

Ich bin eine Art Neuling in der Android-Entwicklung, also entschuldige ich mich im Voraus, wenn meine Frage trivial ist. In einem Teil meiner App benötige ich eine Live-Vorschau meiner Rückfahrkamera, daher habe ich eine benutzerdefinierte Klasse erstellt, die SurfaceView erweitert und SurfaceHolder.Callback implementiert (ich habe im Grunde die Anweisungen in der Android-Dokumentation befolgt).

Leider teste ich meine App in einem Nexus 5x, bei dem ich gerade festgestellt habe, dass der Kamerasensor umgekehrt installiert wurde. Aus diesem Grund wird die Kameravorschau meiner App auf meinem Nexus 5x verkehrt herum angezeigt, was ich nicht möchte.

Es scheint, dass die neue android.hardware.camera2-API dieses Problem automatisch lösen kann. Irgendwann muss ich meinen gesamten Code mit dieser neuen API aktualisieren, aber jetzt brauche ich eine schnelle Lösung, während ich die alte Kamera-API verwende.

So habe ich dort gelesen und einen Code gefunden, den ich in die SurfaceChanged-Methode einführen müsste, um dieses Problem zu umgehen. Hier ist es

Display display = ((WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

        if(display.getRotation() == Surface.ROTATION_0)
        {
            parameters.setPreviewSize(capHeight, capWidth);                           
            camera.setDisplayOrientation(90);
        }

        if(display.getRotation() == Surface.ROTATION_90)
        {
            parameters.setPreviewSize(capWidth, capHeight);                           
        }

        if(display.getRotation() == Surface.ROTATION_180)
        {
            parameters.setPreviewSize(capHeight, capWidth);               
        }

        if(display.getRotation() == Surface.ROTATION_270)
        {
            parameters.setPreviewSize(capWidth, capHeight);
            camera.setDisplayOrientation(180);
        }

        camera.setParameters(parameters);*/

        camera.startPreview();

Das Problem ist, dass ich nicht sehe, dass sich etwas geändert hat.

Irgendwelche Gedanken?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage