Android Camera Orientation Set setCameraDisplayOrientation(Activity activity, int cameraId, android.hardware.Camera camera)

Here you can find the source of setCameraDisplayOrientation(Activity activity, int cameraId, android.hardware.Camera camera)

Description

set Camera Display Orientation

Declaration

public static void setCameraDisplayOrientation(Activity activity,
            int cameraId, android.hardware.Camera camera) 

Method Source Code

//package com.java2s;

import android.app.Activity;

import android.hardware.Camera;

import android.view.Surface;

public class Main {
    public static void setCameraDisplayOrientation(Activity activity,
            int cameraId, android.hardware.Camera camera) {
        Camera.CameraInfo info = new android.hardware.Camera.CameraInfo();
        Camera.getCameraInfo(cameraId, info);
        int rotation = activity.getWindowManager().getDefaultDisplay()
                .getRotation();//from w w w.ja va  2s . c om

        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;
        } else {
            result = (info.orientation - degrees + 360) % 360;
        }
        camera.setDisplayOrientation(result);
    }
}