From e31bee7780af8d12631ea86e4fd8629948de737d Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 26 Aug 2016 23:45:27 +0200 Subject: [PATCH] add a simple gesture detector for future zooming --- .../java/com/simplemobiletools/camera/Preview.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/com/simplemobiletools/camera/Preview.java b/app/src/main/java/com/simplemobiletools/camera/Preview.java index 48fadae5..65d0f2aa 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Preview.java +++ b/app/src/main/java/com/simplemobiletools/camera/Preview.java @@ -12,6 +12,7 @@ import android.net.Uri; import android.os.Handler; import android.util.Log; import android.view.MotionEvent; +import android.view.ScaleGestureDetector; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; @@ -48,6 +49,7 @@ public class Preview extends ViewGroup private static Point mScreenSize; private static Uri mTargetUri; private static Context mContext; + private static ScaleGestureDetector mScaleGestureDetector; private static boolean mCanTakePicture; private static boolean mIsFlashEnabled; @@ -86,6 +88,7 @@ public class Preview extends ViewGroup mCurVideoPath = ""; mScreenSize = Utils.getScreenSize(mActivity); mContext = getContext(); + initGestureDetector(); } public void trySwitchToVideo() { @@ -158,6 +161,16 @@ public class Preview extends ViewGroup mTargetUri = uri; } + private void initGestureDetector() { + mScaleGestureDetector = new ScaleGestureDetector(mContext, new ScaleGestureDetector.SimpleOnScaleGestureListener() { + @Override + public boolean onScale(ScaleGestureDetector detector) { + final float factor = detector.getScaleFactor(); + return super.onScale(detector); + } + }); + } + private static int getPreviewRotation(int cameraId) { final Camera.CameraInfo info = Utils.getCameraInfo(cameraId); final int degrees = getRotationDegrees(); @@ -542,6 +555,7 @@ public class Preview extends ViewGroup public boolean onTouch(View v, MotionEvent event) { mLastClickX = (int) event.getX(); mLastClickY = (int) event.getY(); + mScaleGestureDetector.onTouchEvent(event); return false; }