在surfacechange中执行:
int mDisplayRotation = 0; int mDisplayOrientation = getWindowManager().getDefaultDisplay().getRotation() * 90; CameraInfo mCameraInfo = new CameraInfo(); Camera.getCameraInfo(Camera.CameraInfo.CAMERA_FACING_BACK, mCameraInfo); int mCameraOrientation = mCameraInfo.orientation; if (mCameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) { mDisplayRotation = (mCameraOrientation - mDisplayOrientation + 360) % 360; } else { mDisplayRotation = (mCameraOrientation + mDisplayOrientation) % 360; mDisplayRotation = (360 - mDisplayRotation) % 360; } mCamera.setDisplayOrientation(mDisplayRotation);