2011年11月23日水曜日

setDisplayOrientation

I used setDisplayOrientation().

It is exception to do setDisplayOrientation, while camera do preview.

Do it between stopPreview and startPreview
camera.stopPreview();
camera.setDisplayOrientation(result);
camera.startPreview();
There are the Reference code at Android Developer Page follow:
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;
}

Log.d("camera", "result= " + result);
camera.stopPreview();
camera.setDisplayOrientation(result);
camera.startPreview();

source code here

0 件のコメント:

コメントを投稿