From 724c52244423feced2677fbd1f905e0b8b0639f2 Mon Sep 17 00:00:00 2001 From: Chih-Chung Chang Date: Mon, 14 Jun 2010 18:57:15 +0800 Subject: [PATCH] Correct the setDisplayOrientation sample code. Change-Id: I37af4090b383204a5fd228a4388732e11ef2fa8c --- core/java/android/hardware/Camera.java | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 7640cc153dc02..64380c5c33a78 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -624,16 +624,26 @@ public class Camera { * be called during preview. * * If you want to make the camera image show in the same orientation as - * the display, you can use

+ * the display, you can use the following code.

*

-     *    android.view.Display display;
-     *    android.hardware.Camera.CameraInfo cameraInfo;
+     * public static 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 rotation = getWindowManager().getDefaultDisplay().getRotation();
-     *    android.hardware.Camera.getCameraInfo(id, cameraInfo);
-     *    int degrees = (cameraInfo.mOrientation - rotation + 360) % 360;
-     *
-     *    setDisplayOrientation(degrees);
+     *     int result = (info.mOrientation - degrees + 360) % 360;
+     *     camera.setDisplayOrientation(result);
+     * }
      * 
* @param degrees the angle that the picture will be rotated clockwise. * Valid values are 0, 90, 180, and 270. The starting