From 090c538862c6c4204ebf7789bf0d6146893dc6d9 Mon Sep 17 00:00:00 2001 From: Santhosh Kumar H E Date: Mon, 7 Sep 2015 15:08:50 +0530 Subject: Consider fractional value in zoom circle calculation. Fractional value was lost while rounding off zoom circle size to integer value. Due to this user was not able to zoom upto max zoom level. Change-Id: I99888075f4a484320939f813164bbca9c94dc11a --- src/com/android/camera/ui/ZoomRenderer.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/com/android/camera/ui/ZoomRenderer.java b/src/com/android/camera/ui/ZoomRenderer.java index bddd5cc6a..f8a4b508e 100644 --- a/src/com/android/camera/ui/ZoomRenderer.java +++ b/src/com/android/camera/ui/ZoomRenderer.java @@ -41,7 +41,7 @@ public class ZoomRenderer extends OverlayRenderer private ScaleGestureDetector mDetector; private Paint mPaint; private Paint mTextPaint; - private int mCircleSize; + private float mCircleSize; private int mCenterX; private int mCenterY; private float mMaxCircle; @@ -86,7 +86,7 @@ public class ZoomRenderer extends OverlayRenderer } public void setZoom(int index) { - mCircleSize = (int) (mMinCircle + index * (mMaxCircle - mMinCircle) / (mMaxZoom - mMinZoom)); + mCircleSize = mMinCircle + index * (mMaxCircle - mMinCircle) / (mMaxZoom - mMinZoom); } public void setZoomValue(int value) { @@ -122,7 +122,7 @@ public class ZoomRenderer extends OverlayRenderer mCenterX - mMaxCircle - 4, mCenterY, mPaint); mPaint.setStrokeWidth(mOuterStroke); canvas.drawCircle((float) mCenterX, (float) mCenterY, - (float) mCircleSize, mPaint); + mCircleSize, mPaint); String txt = mZoomSig+"."+mZoomFraction+"x"; mTextPaint.getTextBounds(txt, 0, txt.length(), mTextBounds); canvas.drawText(txt, mCenterX - mTextBounds.centerX(), mCenterY - mTextBounds.centerY(), @@ -132,11 +132,11 @@ public class ZoomRenderer extends OverlayRenderer @Override public boolean onScale(ScaleGestureDetector detector) { final float sf = detector.getScaleFactor(); - float circle = (int) (mCircleSize * sf * sf); + float circle = mCircleSize * sf * sf; circle = Math.max(mMinCircle, circle); circle = Math.min(mMaxCircle, circle); - if (mListener != null && (int) circle != mCircleSize) { - mCircleSize = (int) circle; + if (mListener != null && circle != mCircleSize) { + mCircleSize = circle; int zoom = mMinZoom + (int) ((mCircleSize - mMinCircle) * (mMaxZoom - mMinZoom) / (mMaxCircle - mMinCircle)); mListener.onZoomValueChanged(zoom); } -- cgit v1.2.3