Sono una specie di principiante nello sviluppo di Android, quindi mi scuso in anticipo se la mia domanda è banale. In una parte della mia app ho bisogno di un'anteprima live della mia fotocamera posteriore, quindi ho creato una classe personalizzata che estende SurfaceView e implementa SurfaceHolder.Callback (ho seguito fondamentalmente le istruzioni nella documentazione di Android).Correzione del sensore di paesaggio retromarcia Nexus 5x in una app di anteprima per fotocamera Android
Sfortunatamente, sto testando la mia app in un Nexus 5x, che ho appena realizzato che ha installato il sensore della fotocamera in modo inverso. Per questo motivo, l'anteprima della fotocamera della mia app quando è in esecuzione sul mio Nexus 5x appare sottosopra, il che è qualcosa che non desidero.
Sembra che la nuova API android.hardware.camera2 sia in grado di gestire questo problema automaticamente. Alla fine avrò bisogno di aggiornare tutto il mio codice usando questa nuova API, ma per ora quello di cui ho bisogno è una soluzione rapida durante l'utilizzo della vecchia API della fotocamera.
Così stavo leggendo là fuori e ho trovato un pezzo di codice che avrei dovuto introdurre nel metodo SurfaceChanged per risolvere il problema. Eccolo:
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();
Il problema è che non vedo che qualcosa è cambiato.
Qualche idea?
E il Nexus 6P? – innich