diff options
author | nicolasroard <nicolasroard@google.com> | 2013-02-14 16:33:01 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-02-20 17:03:13 -0800 |
commit | edc48484bc67bd14a7e5fc4036de9d59f542c4fc (patch) | |
tree | 0677344125531e0e649e12500ed6a4cb85d7ea1c /src/com/android/gallery3d/filtershow/ui | |
parent | 8e08b01ed79efa2c026559fb2d9814e80d3eb05b (diff) | |
download | android_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.tar.gz android_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.tar.bz2 android_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.zip |
Add pinch to zoom
Change-Id: I5d90a7ce5d890f613fa957244c6ac5291496cf1a
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui')
-rw-r--r-- | src/com/android/gallery3d/filtershow/ui/ImageCurves.java | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java index f581fc733..e54c83eff 100644 --- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java +++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java @@ -233,6 +233,16 @@ public class ImageCurves extends ImageShow { @Override public synchronized boolean onTouchEvent(MotionEvent e) { + super.onTouchEvent(e); + + if (e.getPointerCount() != 1) { + return true; + } + + if (didFinishScalingOperation()) { + return true; + } + float posX = e.getX() / getWidth(); float posY = e.getY(); float margin = Spline.curveHandleSize() / 2; @@ -255,7 +265,6 @@ public class ImageCurves extends ImageShow { mDoingTouchMove = false; return true; } - mDoingTouchMove = true; if (mDidDelete) { return true; @@ -265,28 +274,31 @@ public class ImageCurves extends ImageShow { return true; } - Spline spline = getSpline(mCurrentCurveIndex); - int pick = mCurrentPick; - if (mCurrentControlPoint == null) { - pick = pickControlPoint(posX, posY); - if (pick == -1) { - mCurrentControlPoint = new ControlPoint(posX, posY); - pick = spline.addPoint(mCurrentControlPoint); - mDidAddPoint = true; - } else { - mCurrentControlPoint = spline.getPoint(pick); + if (e.getActionMasked() == MotionEvent.ACTION_MOVE) { + mDoingTouchMove = true; + Spline spline = getSpline(mCurrentCurveIndex); + int pick = mCurrentPick; + if (mCurrentControlPoint == null) { + pick = pickControlPoint(posX, posY); + if (pick == -1) { + mCurrentControlPoint = new ControlPoint(posX, posY); + pick = spline.addPoint(mCurrentControlPoint); + mDidAddPoint = true; + } else { + mCurrentControlPoint = spline.getPoint(pick); + } + mCurrentPick = pick; } - mCurrentPick = pick; - } - if (spline.isPointContained(posX, pick)) { - spline.movePoint(pick, posX, posY); - } else if (pick != -1 && spline.getNbPoints() > 2) { - spline.deletePoint(pick); - mDidDelete = true; + if (spline.isPointContained(posX, pick)) { + spline.movePoint(pick, posX, posY); + } else if (pick != -1 && spline.getNbPoints() > 2) { + spline.deletePoint(pick); + mDidDelete = true; + } + updateCachedImage(); + invalidate(); } - updateCachedImage(); - invalidate(); return true; } |