在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);