diff options
author | Lars Greiss <kufikugel@googlemail.com> | 2014-02-02 03:09:22 +0100 |
---|---|---|
committer | Arne Coucheron <arco68@gmail.com> | 2018-01-26 00:53:27 +0100 |
commit | 641acd0dae922ae4e0688f58e7a60088e19f01c0 (patch) | |
tree | d794281c5f6e20c7df0ad75bee15ce9c37678fc9 | |
parent | 7132454a49c67c1d8e27de20169249bd14790bea (diff) | |
download | android_packages_apps_Snap-641acd0dae922ae4e0688f58e7a60088e19f01c0.tar.gz android_packages_apps_Snap-641acd0dae922ae4e0688f58e7a60088e19f01c0.tar.bz2 android_packages_apps_Snap-641acd0dae922ae4e0688f58e7a60088e19f01c0.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 | 12 | ||||
-rw-r--r-- | src/com/android/camera/PreviewGestures.java | 10 | ||||
-rwxr-xr-x | src/com/android/camera/VideoUI.java | 11 | ||||
-rw-r--r-- | src/com/android/camera/ui/ZoomRenderer.java | 36 |
4 files changed, 27 insertions, 42 deletions
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 130e8d261..f6d302d55 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -58,7 +58,6 @@ import android.widget.ListView; import android.widget.PopupWindow; import android.widget.SeekBar; import android.widget.Toast; -import android.graphics.Canvas; import com.android.camera.CameraPreference.OnPreferenceChangedListener; import com.android.camera.FocusOverlayManager.FocusUI; @@ -1391,22 +1390,13 @@ public class PhotoUI implements PieListener, mFaceView.setFaces(faces); } - - 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() { Log.d(TAG, "Device flip detected."); diff --git a/src/com/android/camera/PreviewGestures.java b/src/com/android/camera/PreviewGestures.java index 3f1cc4f86..8a0c09b80 100644 --- a/src/com/android/camera/PreviewGestures.java +++ b/src/com/android/camera/PreviewGestures.java @@ -20,7 +20,6 @@ import android.view.GestureDetector; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.view.View; -import android.graphics.Canvas; import com.android.camera.ui.PieRenderer; import com.android.camera.ui.RenderOverlay; @@ -312,19 +311,12 @@ public class PreviewGestures mZoom.onScaleEnd(detector); } - public boolean onScaleStepResize(boolean direction) - { + public boolean onScaleStepResize(boolean direction) { if(mZoom != null){ return mZoom.onScaleStepResize(direction); } return false; } - public void onScaleChangeDraw(Canvas canvas) - { - if(mZoom != null){ - mZoom.onScaleChangeDraw(canvas); - } - } } diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index 5f86afcd1..b08e1db8e 100755 --- 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; @@ -1109,21 +1108,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 86be656fd..3e436cff8 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,12 +50,12 @@ 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; private float mZoomMinValue; private float mZoomMaxValue; - private Canvas mCanvas; public interface OnZoomChangedListener { void onZoomStart(); @@ -129,7 +132,6 @@ 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); @@ -145,12 +147,6 @@ 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(); @@ -176,7 +172,7 @@ public class ZoomRenderer extends OverlayRenderer public boolean onScaleStepResize(boolean direction) { int zoom; float circle; - float circleStep = (mMaxCircle - mMinCircle)/10; + float circleStep = (mMaxCircle - mMinCircle)/18; if(direction){ circle = (int) (mCircleSize + circleStep); } else { @@ -185,14 +181,20 @@ public class ZoomRenderer extends OverlayRenderer circle = Math.max(mMinCircle, circle); circle = Math.min(mMaxCircle, circle); if (mListener != null && (int) circle != mCircleSize - && ((mMaxCircle - mMinCircle) != 0)) { + && ((mMaxCircle - mMinCircle) > 0)) { mCircleSize = (int) circle; zoom = mMinZoom + (int) ((mCircleSize - mMinCircle) * (mMaxZoom - mMinZoom) / (mMaxCircle - mMinCircle)); if (mListener != null) { - mListener.onZoomStart(); + mHandler.removeCallbacks(mOnZoomEnd); + if (!mInZoom) { + mInZoom = true; + setVisible(true); + mListener.onZoomStart(); + update(); + } mListener.onZoomValueChanged(zoom); - mListener.onZoomEnd(); + mHandler.postDelayed(mOnZoomEnd, 300); } return true; } else { @@ -200,6 +202,16 @@ public class ZoomRenderer extends OverlayRenderer } } + Runnable mOnZoomEnd = new Runnable() { + public void run() { + mInZoom = false; + setVisible(false); + if (mListener != null) { + mListener.onZoomEnd(); + } + } + }; + @Override public boolean onScaleBegin(ScaleGestureDetector detector) { setVisible(true); |