diff options
author | Byunghun Jeon <bjeon@codeaurora.org> | 2016-03-09 15:14:18 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-25 21:55:20 -0700 |
commit | 7ed01dab6670828bd4005a525eef03ed7a19b97f (patch) | |
tree | 74807ae450c5f71de530d2931fc59d7f2ece365f /src/com/android/camera/ui | |
parent | e9e91c3ff2b4e7e8c4b0932d8559a2a99610a8b7 (diff) | |
download | android_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.tar.gz android_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.tar.bz2 android_packages_apps_Snap-7ed01dab6670828bd4005a525eef03ed7a19b97f.zip |
SnapdragonCamera: Camera2 add zoom support
Add zoom support to Camera2
CRs-Fixed: 989750
Change-Id: Id6b558ff5215f04ca7c201b1d1807521d615c353
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r-- | src/com/android/camera/ui/ZoomRenderer.java | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java index e1363c574..67dcf34c1 100644 --- a/src/com/android/camera/ui/ZoomRenderer.java +++ b/src/com/android/camera/ui/ZoomRenderer.java @@ -53,11 +53,16 @@ public class ZoomRenderer extends OverlayRenderer private boolean mInZoom; private Rect mTextBounds; private int mOrientation; + private boolean mCamera2 = false; + private float mZoomValue; + private float mZoomMinValue; + private float mZoomMaxValue; public interface OnZoomChangedListener { void onZoomStart(); void onZoomEnd(); void onZoomValueChanged(int index); // only for immediate zoom + void onZoomValueChanged(float value); } public ZoomRenderer(Context ctx) { @@ -85,10 +90,23 @@ public class ZoomRenderer extends OverlayRenderer mMinZoom = 0; } + public void setZoomMax(float zoomMax) { + mCamera2 = true; + mZoomMaxValue = zoomMax; + mZoomMinValue = 1f; + } + public void setZoom(int index) { mCircleSize = mMinCircle + index * (mMaxCircle - mMinCircle) / (mMaxZoom - mMinZoom); } + public void setZoom(float zoomValue) { + mCamera2 = true; + mZoomValue = zoomValue; + mCircleSize = (int) (mMinCircle + (mMaxCircle - mMinCircle) * (mZoomValue - mZoomMinValue) / + (mZoomMaxValue - mZoomMinValue)); + } + public void setZoomValue(int value) { value = value / 10; mZoomSig = value / 10; @@ -124,6 +142,7 @@ public class ZoomRenderer extends OverlayRenderer canvas.drawCircle((float) mCenterX, (float) mCenterY, mCircleSize, mPaint); String txt = mZoomSig+"."+mZoomFraction+"x"; + if (mCamera2) txt = "" + mZoomValue; mTextPaint.getTextBounds(txt, 0, txt.length(), mTextBounds); canvas.drawText(txt, mCenterX - mTextBounds.centerX(), mCenterY - mTextBounds.centerY(), mTextPaint); @@ -137,8 +156,16 @@ public class ZoomRenderer extends OverlayRenderer circle = Math.min(mMaxCircle, circle); if (mListener != null && circle != mCircleSize) { mCircleSize = circle; - int zoom = mMinZoom + (int) ((mCircleSize - mMinCircle) * (mMaxZoom - mMinZoom) / (mMaxCircle - mMinCircle)); - mListener.onZoomValueChanged(zoom); + if (mCamera2) { + float zoom = mZoomMinValue + (mZoomMaxValue - mZoomMinValue) / (mMaxCircle - + mMinCircle) * (mCircleSize - mMinCircle); + zoom = ((int) (zoom * 10)) / 10.0f; + mListener.onZoomValueChanged(zoom); + } else { + int zoom = mMinZoom + (int) ((mCircleSize - mMinCircle) * (mMaxZoom - mMinZoom) / + (mMaxCircle - mMinCircle)); + mListener.onZoomValueChanged(zoom); + } update(); } return true; |