Android Camera Orientation Check getCameraDisplayOrientation(Context context, int cameraId, android.hardware.Camera camera)

Here you can find the source of getCameraDisplayOrientation(Context context, int cameraId, android.hardware.Camera camera)

Description

get Camera Display Orientation

Declaration

public static int getCameraDisplayOrientation(Context context,
            int cameraId, android.hardware.Camera camera) 

Method Source Code

//package com.java2s;

import android.content.Context;
import android.hardware.Camera;

import android.view.Surface;
import android.view.WindowManager;

public class Main {
    public static int getCameraDisplayOrientation(Context context,
            int cameraId, android.hardware.Camera camera) {
        android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo();
        android.hardware.Camera.getCameraInfo(cameraId, info);
        int rotation = ((WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE))
                .getDefaultDisplay().getRotation();
        int degrees = 0;
        switch (rotation) {
        case Surface.ROTATION_0:
            degrees = 0;/*from w ww  .j av a  2  s.  com*/
            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;
        }
        return result;
    }
}

Related

  1. getCameraOrientation(int cameraId)
  2. getDisplayOrientation(int degrees, int cameraId)
  3. getCameraPhotoOrientation(Context context, Uri imageUri, String imagePath)