diff options
author | Su Liu <suliu@codeaurora.org> | 2013-09-04 18:16:50 +0800 |
---|---|---|
committer | Arne Coucheron <arco68@gmail.com> | 2018-01-26 00:51:45 +0100 |
commit | 529b1ae0a64bfb02608f3d0ced4cec3dbe1489ff (patch) | |
tree | c3753893668e70ec78fcb8f359ab24846093d9c9 /src/com/android/camera/ui | |
parent | 29d6b02dfaf6736f2245d08ca1b5f8834036478e (diff) | |
download | android_packages_apps_Snap-529b1ae0a64bfb02608f3d0ced4cec3dbe1489ff.tar.gz android_packages_apps_Snap-529b1ae0a64bfb02608f3d0ced4cec3dbe1489ff.tar.bz2 android_packages_apps_Snap-529b1ae0a64bfb02608f3d0ced4cec3dbe1489ff.zip |
Camera: Change volume hard key button to zoom function
Able to capture image through volume hard key
button in camera application, change the function
to zoom function.
Change-Id: Iab9fc2492b2e2ff89cd58c21bac2f147f47b77e2
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r-- | src/com/android/camera/ui/ZoomRenderer.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java index 11bff7a8d..86be656fd 100644 --- a/src/com/android/camera/ui/ZoomRenderer.java +++ b/src/com/android/camera/ui/ZoomRenderer.java @@ -52,6 +52,7 @@ public class ZoomRenderer extends OverlayRenderer private boolean mCamera2 = false; private float mZoomMinValue; private float mZoomMaxValue; + private Canvas mCanvas; public interface OnZoomChangedListener { void onZoomStart(); @@ -128,6 +129,7 @@ public class ZoomRenderer extends OverlayRenderer @Override public void onDraw(Canvas canvas) { + mCanvas = canvas; canvas.rotate(mOrientation, mCenterX, mCenterY); mPaint.setStrokeWidth(mInnerStroke); canvas.drawCircle(mCenterX, mCenterY, mMinCircle, mPaint); @@ -143,6 +145,12 @@ public class ZoomRenderer extends OverlayRenderer mTextPaint); } + public void onScaleChangeDraw(Canvas canvas) { + if(mCanvas != null){ + onDraw(mCanvas); + } + } + @Override public boolean onScale(ScaleGestureDetector detector) { final float sf = detector.getScaleFactor(); @@ -165,6 +173,33 @@ public class ZoomRenderer extends OverlayRenderer return true; } + public boolean onScaleStepResize(boolean direction) { + int zoom; + float circle; + float circleStep = (mMaxCircle - mMinCircle)/10; + 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) { + mListener.onZoomStart(); + mListener.onZoomValueChanged(zoom); + mListener.onZoomEnd(); + } + return true; + } else { + return false; + } + } + @Override public boolean onScaleBegin(ScaleGestureDetector detector) { setVisible(true); |