summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2017-03-01 11:10:22 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-01 11:10:22 -0800
commitaca636015e3d82552f7066f35429129aab976313 (patch)
tree36d5e951664f51ed60bbdda9187047a08b4634ca
parent727fdda2c1d3db4cc107825f8e6ab114f60b7064 (diff)
parent0deb06768ab319386e43f8ae17fb832aa55c8ce8 (diff)
downloadandroid_packages_apps_Snap-aca636015e3d82552f7066f35429129aab976313.tar.gz
android_packages_apps_Snap-aca636015e3d82552f7066f35429129aab976313.tar.bz2
android_packages_apps_Snap-aca636015e3d82552f7066f35429129aab976313.zip
Merge "SnapdragonCamera: Fix rotation angle when the rear in differ angle" into camera.lnx.1.0-dev.1.0
-rw-r--r--src/com/android/camera/ui/PanoCaptureProcessView.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/com/android/camera/ui/PanoCaptureProcessView.java b/src/com/android/camera/ui/PanoCaptureProcessView.java
index 95e9a095f..ec3c7dd15 100644
--- a/src/com/android/camera/ui/PanoCaptureProcessView.java
+++ b/src/com/android/camera/ui/PanoCaptureProcessView.java
@@ -930,16 +930,29 @@ public class PanoCaptureProcessView extends View implements SensorEventListener
Canvas canvas = new Canvas(dstBitmap);
matrix.reset();
int sensorOrientation = mController.getCameraSensorOrientation();
- if(mOrientation == 0 || mOrientation == 270) {
- matrix.postRotate((sensorOrientation + mOrientation + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
+ matrix.setScale(ratio, ratio);
+ // See android.hardware.Camera.Parameters.setRotation for documentation.
+ // refer to CameraUtil.java getJpegRotation method
+ float rotationAngle = (sensorOrientation + mOrientation) % 360;
+ if (mOrientation == 0) {
+ if (sensorOrientation == 90) {
+ matrix.postRotate(rotationAngle, dstBitmap.getWidth() / 2,
+ dstBitmap.getWidth() / 2);
+ } else if (sensorOrientation == 270) {
+ matrix.postRotate(rotationAngle, dstBitmap.getHeight() / 2,
+ dstBitmap.getHeight() / 2);
+ }
} else if (mOrientation == 180){
- matrix.postRotate((sensorOrientation + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
- matrix.postRotate(180, srcBitmap.getHeight() / 2, srcBitmap.getWidth() / 2);
- } else if(mOrientation == 90) {
- matrix.postRotate((sensorOrientation + mOrientation + 180 + 360) % 360, srcBitmap.getHeight() / 2, srcBitmap.getHeight() / 2);
- matrix.postRotate(180, srcBitmap.getWidth() / 2, srcBitmap.getHeight() / 2);
+ if (sensorOrientation == 90) {
+ matrix.postRotate(rotationAngle, dstBitmap.getHeight() / 2,
+ dstBitmap.getHeight() / 2);
+ } else if (sensorOrientation == 270) {
+ matrix.postRotate(rotationAngle, dstBitmap.getWidth() / 2,
+ dstBitmap.getWidth() / 2);
+ }
+ } else if (mOrientation == 270 || mOrientation == 90) {
+ matrix.postRotate(rotationAngle, dstBitmap.getWidth() / 2, dstBitmap.getHeight() / 2);
}
- matrix.postScale(ratio, ratio);
canvas.drawBitmap(srcBitmap, matrix, null);
}