2015-07-10 14 views
6

Ho scritto un'applicazione della fotocamera usando Camera2 api. Ma quando apro l'app in modalità orizzontale l'oggetto nell'anteprima appare ruotato di 90 gradi in senso orario. Ma non vedo lo stesso problema in modalità PotraitL'orientamento dell'anteprima in modalità orizzontale viene ruotato in senso orario con Camera2 api

Che cosa sta causando questo problema in modalità orizzontale?

Questo è il codice di rotazione dello schermo:

ORIENTAMENTI SparseIntArray static final private = new SparseIntArray();

static { 
    ORIENTATIONS.append(Surface.ROTATION_0, 90); 
    ORIENTATIONS.append(Surface.ROTATION_90, 0); 
    ORIENTATIONS.append(Surface.ROTATION_180, 270); 
    ORIENTATIONS.append(Surface.ROTATION_270, 180); 
} 
+0

Che cosa stai usando per l'anteprima della tua videocamera? Un SurfaceView, un TextureView o qualcos'altro? –

+0

Sarei interessato anche alla tua soluzione, se ne hai trovato. – Yeehaw

+0

@EddyTalvala, nel mio caso sto usando SurfaceView –

risposta

0

Ho riscontrato questo stesso problema, perché l'orientamento del sensore della fotocamera predefinito può essere di 90 gradi o 270 gradi a seconda del dispositivo. Al fine di rendere l'uscita della telecamera sullo schermo, c'è un bel po 'di pre-elaborazione coinvolti nella configurazione delle uscite della telecamera.

Il metodo setUpCameraOutputs (int width, int height) nell'esempio ufficiale di Google mostra come eseguire questa operazione (https://github.com/googlesamples/android-Camera2Basic/blob/master/Application/src/main/java/com/example/android/camera2basic/Camera2BasicFragment.java). Fondamentalmente, controlla l'orientamento del sensore della fotocamera e calcola se l'area di anteprima deve essere ruotata.

Problemi correlati