Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程中調用Camera時預覽畫面有旋轉問題的解決方法

Android編程中調用Camera時預覽畫面有旋轉問題的解決方法

編輯:關於Android編程

本文實例講述了Android編程中調用Camera時預覽畫面有旋轉問題的解決方法。分享給大家供大家參考,具體如下:

在調用Camera寫應用的時候,前後攝像頭的情況有時候是不一樣的。有時候,明明後攝像頭沒有問題,而調用到前攝像頭時,卻倒轉了180°,或者其他角度,百思不得其解。在查看了Android源碼之後,發現它的解決辦法很是好,接下來貼個源碼,以備日後查看。

public static int getDisplayRotation(Activity activity) {
  int rotation = activity.getWindowManager().getDefaultDisplay()
    .getRotation();
  switch (rotation) {
    case Surface.ROTATION_0: return 0;
    case Surface.ROTATION_90: return 90;
    case Surface.ROTATION_180: return 180;
    case Surface.ROTATION_270: return 270;
  }
  return 0;
}
public static void setCameraDisplayOrientation(Activity activity,
    int cameraId, Camera camera) {
  // See android.hardware.Camera.setCameraDisplayOrientation for
  // documentation.
  Camera.CameraInfo info = new Camera.CameraInfo();
  Camera.getCameraInfo(cameraId, info);
  int degrees = getDisplayRotation(activity);
  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;
  }
  camera.setDisplayOrientation(result);
}

在調用Camera的時候只要調用setCameraDisplayOrientation這個方法就可以了。

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved