Ich bin ein bisschen Neuling in Android-Entwicklung, so dass meine Entschuldigung im Voraus, wenn meine Frage trivial ist. In einem Teil meiner App benötige ich eine Live-Vorschau meiner Rückfahrkamera, also habe ich eine benutzerdefinierte Klasse erstellt, die SurfaceView erweitert und SurfaceHolder.Callback implementiert (ich befolgte im Grunde die Anweisungen in der Android-Dokumentation).Nexus 5x rückwärts Landschaftssensor in einer Android-Kamera Vorschau App
Leider teste ich meine App in einem Nexus 5x, das ich gerade festgestellt habe, dass es den Kamerasensor auf eine umgekehrte Weise installiert hat. Aus diesem Grund erscheint die Kameravorschau meiner App, wenn sie auf meinem Nexus 5x läuft, auf dem Kopf stehend, was ich nicht möchte.
Es scheint, dass die neue android.hardware.camera2 API dieses Problem automatisch beheben kann. Irgendwann muss ich meinen gesamten Code mit dieser neuen API aktualisieren, aber für den Moment brauche ich eine schnelle Lösung, während ich die alte Kamera-API verwende.
Also habe ich dort gelesen und ich fand ein Stück Code, den ich in der SurfaceChanged-Methode zur Umgehung dieses Problems einführen müsste. 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?
Was ist mit Nexus 6P? – innich