summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/util
diff options
context:
space:
mode:
authorDoris Liu <tianliu@google.com>2013-10-28 14:44:24 -0700
committerDoris Liu <tianliu@google.com>2013-10-28 15:31:29 -0700
commit36ebcb11b15fb00d3a641499c0f8a16745a2fbb0 (patch)
treedb8c6bfd18f48907c05212b41262c42343a62a06 /src/com/android/camera/util
parent5737b93254f451859c7924792c46354d385da946 (diff)
downloadandroid_packages_apps_Snap-36ebcb11b15fb00d3a641499c0f8a16745a2fbb0.tar.gz
android_packages_apps_Snap-36ebcb11b15fb00d3a641499c0f8a16745a2fbb0.tar.bz2
android_packages_apps_Snap-36ebcb11b15fb00d3a641499c0f8a16745a2fbb0.zip
Fix the mapping between preview UI and camera sensor
Bug: 11409659 Change-Id: I46ae3d7797590d59befbdc394d5304f14a212a80
Diffstat (limited to 'src/com/android/camera/util')
-rw-r--r--src/com/android/camera/util/CameraUtil.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java
index eff0c4078..cbc9ebe34 100644
--- a/src/com/android/camera/util/CameraUtil.java
+++ b/src/com/android/camera/util/CameraUtil.java
@@ -678,6 +678,16 @@ public class CameraUtil {
rect.bottom = Math.round(rectF.bottom);
}
+ public static Rect rectFToRect(RectF rectF) {
+ Rect rect = new Rect();
+ rectFToRect(rectF, rect);
+ return rect;
+ }
+
+ public static RectF rectToRectF(Rect r) {
+ return new RectF(r.left, r.top, r.right, r.bottom);
+ }
+
public static void prepareMatrix(Matrix matrix, boolean mirror, int displayOrientation,
int viewWidth, int viewHeight) {
// Need mirror for front camera.
@@ -690,6 +700,21 @@ public class CameraUtil {
matrix.postTranslate(viewWidth / 2f, viewHeight / 2f);
}
+ public static void prepareMatrix(Matrix matrix, boolean mirror, int displayOrientation,
+ Rect previewRect) {
+ // Need mirror for front camera.
+ matrix.setScale(mirror ? -1 : 1, 1);
+ // This is the value for android.hardware.Camera.setDisplayOrientation.
+ matrix.postRotate(displayOrientation);
+
+ // Camera driver coordinates range from (-1000, -1000) to (1000, 1000).
+ // We need to map camera driver coordinates to preview rect coordinates
+ Matrix mapping = new Matrix();
+ mapping.setRectToRect(new RectF(-1000, -1000, 1000, 1000), rectToRectF(previewRect),
+ Matrix.ScaleToFit.FILL);
+ matrix.setConcat(mapping, matrix);
+ }
+
public static String createJpegName(long dateTaken) {
synchronized (sImageFileNamer) {
return sImageFileNamer.generateName(dateTaken);