diff options
author | Lars Greiss <kufikugel@googlemail.com> | 2014-02-02 03:09:22 +0100 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-11-02 12:22:26 -0700 |
commit | 60fe2087173761175a4441f6a6e26f80497375da (patch) | |
tree | 1d742abf4b49a689e3cb0302a3bbe3ecfd8cd552 | |
parent | 1fd7ce85ce5e60f4d11b3a7ef3c2d1bc82448488 (diff) | |
download | android_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.tar.gz android_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.tar.bz2 android_packages_apps_Snap-60fe2087173761175a4441f6a6e26f80497375da.zip |
Camera2: tweak volume key zoom and cleanup
- cleanup unused code
- cleanup codestyle
- add more zoom steps for smother zooming
- show zoom circle indicator during zoom
Change-Id: I5214fc2620a0c5167bfdc8e85f7115966c3b8bcf
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/PreviewGestures.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 11 | ||||
-rw-r--r-- | src/com/android/camera/ui/ZoomRenderer.java | 46 |
4 files changed, 61 insertions, 10 deletions
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index a3174a67d..5b75b54f7 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -1314,6 +1314,13 @@ public class PhotoUI implements PieListener, mFaceView.setFaces(faces); } + public boolean onScaleStepResize(boolean direction) { + if(mGestures != null){ + return mGestures.onScaleStepResize(direction); + } + return false; + } + @Override public void onDisplayChanged() { Log.d(TAG, "Device flip detected."); diff --git a/src/com/android/camera/PreviewGestures.java b/src/com/android/camera/PreviewGestures.java index 0ac6ce01c..7aa5fa84c 100644 --- a/src/com/android/camera/PreviewGestures.java +++ b/src/com/android/camera/PreviewGestures.java @@ -293,5 +293,12 @@ public class PreviewGestures public void onScaleEnd(ScaleGestureDetector detector) { mZoom.onScaleEnd(detector); } + + public boolean onScaleStepResize(boolean direction) { + if(mZoom != null){ + return mZoom.onScaleStepResize(direction); + } + return false; + } } diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index adda6b206..3c461f213 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -22,7 +22,6 @@ import org.codeaurora.snapcam.R; import android.content.res.Configuration; import android.graphics.Bitmap; -import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Point; import android.graphics.drawable.ColorDrawable; @@ -1100,21 +1099,13 @@ public class VideoUI implements PieRenderer.PieListener, return mCameraControls.getVisibility() == View.VISIBLE; } - public boolean onScaleStepResize(boolean direction) - { + public boolean onScaleStepResize(boolean direction) { if(mGestures != null){ return mGestures.onScaleStepResize(direction); } return false; } - public void onScaleChangeDraw(Canvas canvas) - { - if(mGestures != null){ - mGestures.onScaleChangeDraw(canvas); - } - } - @Override public void onDisplayChanged() { mCameraControls.checkLayoutFlip(); diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java index 11bff7a8d..9d655378a 100644 --- a/src/com/android/camera/ui/ZoomRenderer.java +++ b/src/com/android/camera/ui/ZoomRenderer.java @@ -22,6 +22,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; +import android.os.Handler; import android.view.ScaleGestureDetector; import org.codeaurora.snapcam.R; @@ -35,6 +36,8 @@ public class ZoomRenderer extends OverlayRenderer private int mMinZoom; private OnZoomChangedListener mListener; + private final Handler mHandler = new Handler(); + private ScaleGestureDetector mDetector; private Paint mPaint; private Paint mTextPaint; @@ -47,6 +50,7 @@ public class ZoomRenderer extends OverlayRenderer private int mOuterStroke; private int mZoomSig; private int mZoomFraction; + private boolean mInZoom; private Rect mTextBounds; private int mOrientation; private boolean mCamera2 = false; @@ -165,6 +169,48 @@ public class ZoomRenderer extends OverlayRenderer return true; } + public boolean onScaleStepResize(boolean direction) { + int zoom; + float circle; + float circleStep = (mMaxCircle - mMinCircle)/18; + if(direction){ + circle = (int) (mCircleSize + circleStep); + } else { + circle = (int) (mCircleSize - circleStep); + } + circle = Math.max(mMinCircle, circle); + circle = Math.min(mMaxCircle, circle); + if (mListener != null && (int) circle != mCircleSize + && ((mMaxCircle - mMinCircle) > 0)) { + mCircleSize = (int) circle; + zoom = mMinZoom + (int) ((mCircleSize - mMinCircle) + * (mMaxZoom - mMinZoom) / (mMaxCircle - mMinCircle)); + if (mListener != null) { + mHandler.removeCallbacks(mOnZoomEnd); + if (!mInZoom) { + mInZoom = true; + setVisible(true); + mListener.onZoomStart(); + update(); + } + mListener.onZoomValueChanged(zoom); + mHandler.postDelayed(mOnZoomEnd, 300); + } + update(); + } + return true; + } + + Runnable mOnZoomEnd = new Runnable() { + public void run() { + mInZoom = false; + setVisible(false); + if (mListener != null) { + mListener.onZoomEnd(); + } + } + }; + @Override public boolean onScaleBegin(ScaleGestureDetector detector) { setVisible(true); |