Exemplo n.º 1
0
  public static void configureCameraParameters(Context context, int rotation) {
    Parameters cameraParams = mCamera.getParameters();
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) { // for 2.1 and
      // before
      if (isPortrait(context)) {
        cameraParams.set(CAMERA_PARAM_ORIENTATION, CAMERA_PARAM_PORTRAIT);
        mCameraAngle = 90;
      } else {
        cameraParams.set(CAMERA_PARAM_ORIENTATION, CAMERA_PARAM_LANDSCAPE);
        mCameraAngle = 0;
      }
    } else { // for 2.2 and later
      switch (rotation) {
        case Surface.ROTATION_0: // This is display orientation
          mCameraAngle = 90; // This is camera orientation
          break;
        case Surface.ROTATION_90:
          mCameraAngle = 0;
          break;
        case Surface.ROTATION_180:
          mCameraAngle = 270;
          break;
        case Surface.ROTATION_270:
          mCameraAngle = 180;
          // image
          break;
        default:
          mCameraAngle = 90;
          break;
      }
      Log.d(LogUtil.TAG, "angle: " + mCameraAngle);
      mCamera.setDisplayOrientation(mCameraAngle);
    }

    cameraParams.setRecordingHint(true);
    mCamera.setParameters(cameraParams);
  }