summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui
diff options
context:
space:
mode:
authorByunghun Jeon <bjeon@codeaurora.org>2016-03-09 15:14:18 -0800
committerSteve Kondik <steve@cyngn.com>2016-08-25 21:55:20 -0700
commit7ed01dab6670828bd4005a525eef03ed7a19b97f (patch)
tree74807ae450c5f71de530d2931fc59d7f2ece365f /src/com/android/camera/ui
parente9e91c3ff2b4e7e8c4b0932d8559a2a99610a8b7 (diff)
downloadandroid_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.java31
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;