2012-04-21 25 views
5

¿Es posible abrir la intención de la cámara en android solo en modo retrato, incluso si el usuario volcó el dispositivo, la cámara seguirá en modo retrato,Forzar que una cámara se abra siempre en modo retrato en android

he intentado lo siguiente respuesta: Force Portrait Mode pero no funcionó, gracias

+0

véase también http://stackoverflow.com/questions/3491961/android-capture-photo y HTTP : //stackoverflow.com/questions/2543059/android-camera-in-portrait-on-surfaceview/6762941#6762941 – EpicPandaForce

Respuesta

4

Pruébalo -

private void setCameraDisplayOrientation(Activity activity, 
     int cameraId, android.hardware.Camera camera) { 
    android.hardware.Camera.CameraInfo info = 
      new android.hardware.Camera.CameraInfo(); 
    android.hardware.Camera.getCameraInfo(cameraId, info); 
    int rotation = activity.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; 
    } 

    int result; 
    if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
     result = (info.orientation + degrees) % 360; 
     result = (360 - result) % 360; // compensate the mirror 
    } else { // back-facing 
     result = (info.orientation - degrees + 360) % 360; 
    } 
    camera.setDisplayOrientation(result); 
} 

private void initCamera() { 
    if(mCamera == null) { 
      mCamera = Camera.open(); 
      setCameraDisplayOrientation(activity, CameraInfo.CAMERA_FACING_BACK, mCamera); 
      mCamera.unlock(); 
     } 
} 
+1

'cameraID' solo está disponible arriba de API Lv.9. Este método de Google podría funcionar para aquellos dispositivos que están por encima de API Lv.9, para los que están por debajo de 9, una instrucción if para ver si 'Build.VERSION.SDK_INT' mayor que' Build.VERSION_CODES.GINGERBREAD' es necesario. – dumbfingers

+1

Trabajó en API Lv14 y superiores, bloqueado en 2.3.6 –

Cuestiones relacionadas