La camera è errata a less che la tastiera non sia aperta

Ho 2 androidi qui.

In entrambi, quando accendo la mia applicazione, la camera si presenta terribilmente sbagliata (ruotata di 90 gradi lateralmente e allungata di solito …)

  • Ottieni la frequenza sonora con Android FFT
  • Firebase getDownloadURL
  • Le transizioni di attività / frammenti sono compatibili con i dispositivi pre-Lollipop?
  • La tabella di eliminazione di Android SQLite non effettua effettivamente la cancellazione delle righe
  • IllegalArgumentException: il valore di legame all'indice 1 è nullo
  • Come eseguire l'operazione di scatto sulla window delle informazioni personalizzate del marker sulla mappa di Google V2 in android
  • In uno dei telefoni c'è una tastiera e quando apro la tastiera, l'applicazione funziona correttamente … Poiché la tastiera forzava l'orientamento, ho capito che il problema è che i telefoni si aspettano sempre lo stesso orientamento, ma l'SDK non è d'accordo.

    Come faccio a informare la telecamera quale orientamento si suppone di utilizzare per tutto il tempo?

    One Solution collect form web for “La camera è errata a less che la tastiera non sia aperta”

    Se la tua applicazione viene eseguita su v2.2 o superiore puoi ruotare l'orientamento della camera in ritratto utilizzando camera.setDisplayOrientation (90).

    Prima di v2.2, la camera viene visualizzata solo nell'orientamento orizzontale, per cui è necessario costringere l'attività all'orientamento orizzontale.

    Per supportre i dispositivi prima di v2.2 (livello API 8) e dopo, una soluzione è quella di predefinire l'orientamento dell'attività verso il paesaggio in AndroidManifest.xml. Quindi, al controllo di runtime, controllare il livello API e, se froyo o superiore, modificare l'orientamento di attività in ritratto e ruotare la visualizzazione della camera.

    //in activity onCreate method if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //After opening camera - call via reflection Method rotateMethod = android.hardware.Camera.class.getMethod("setDisplayOrientation", int.class); rotateMethod.invoke(mCamera, 90); 

    Questa è la soluzione più semplice, e speriamo che i nuovi dispositivi vengano usciti da v2.1 e in basso abbasseranno il radar.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.