7

Uso la cámara en mi aplicación. Sólo estoy usando intent para iniciar la cámaraorientación de retrato de cámara para Android

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(cameraIntent, 101); 

La imagen capturada se enciende automáticamente en landscape view. ¿Cómo puedo hacer camera para capturar imágenes en portrait view

+0

estoy frente a la misma cuestión, por favor dígame ¿cómo se resolvió este .... –

+0

@SivaK En vez de usar aplicación de la cámara por defecto, he creado mi propia visión de la cámara para capturar imágenes –

+1

Seshu Vinay - gracias por su respuesta, ¿hay algún código de muestra o blog para crear nuestra propia vista de cámara? –

Respuesta

12

Si el dispositivo tiene v2.2 o superior que puede girar orientación de la cámara a vertical usando camera.setDisplayOrientation(90). En los dispositivos de abajo a v2.2, la cámara solo se mostrará en orientación horizontal y, por lo tanto, la imagen aparecerá en horizontal. Verifique estas publicaciones Using Camera in Portrait Orientation, Camera is wrong unless keyboard is open.

+0

Dónde agregar esto ... –

+1

No creo que esto funcione sin reemplazar la clase de la cámara - llamando a un intento ganado ' t suficiente aquí – ekatz

2

prueba esto.

 Parameters param = mCamera.getParameters(); 

     switch(mDisplay.getRotation()){ 
     case Surface.ROTATION_0: 
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){ 
       mCamera.setDisplayOrientation(90); 
       Log.d("Rotation_0", "whatever"); 
      } 
      else{ 
       Log.d("Rotation_0", "whatever"); 
       param.setRotation(90); 
       mCamera.setParameters(param); 
      } 
      break; 
     case Surface.ROTATION_90: 
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){ 
       mCamera.setDisplayOrientation(0); 
       Log.d("Rotation_0", "whatever"); 
      } 
      else{ 
       Log.d("Rotation_90", "whatever"); 
       param.setRotation(0); 
       mCamera.setParameters(param); 
      } 
      break; 
     } 
1

Aquí, este código es adecuado para todo tipo de orientación que se admiten en aplicación de la cámara androide [Modo Retrato] también.

int rotation = this.getWindowManager().getDefaultDisplay().getRotation(); 
int degrees = 0; 

switch (rotation) { 

    case Surface.ROTATION_0: 
     degrees = 0; 
     break; 

    case Surface.ROTATION_90: 
     degrees = 90; 
     break; 

    case Surface.ROTATION_180: 
     degrees = 180; 
     break; 

    case Surface.ROTATION_270: 
     degrees = 270; 
     break; 

} 
+0

Gracias Tim Castelijns –

Cuestiones relacionadas