diff options
author | nicolasroard <nicolasroard@google.com> | 2012-11-29 00:01:59 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2012-11-29 00:20:33 -0800 |
commit | 599393ecad6803161d5e901ef625e34cfe088009 (patch) | |
tree | dfdc3cfaeb0373a8dea05db62125c69e940df8f0 /src | |
parent | 6502545991948769bc9ca725dafb9899c2635a01 (diff) | |
download | android_packages_apps_Gallery2-599393ecad6803161d5e901ef625e34cfe088009.tar.gz android_packages_apps_Gallery2-599393ecad6803161d5e901ef625e34cfe088009.tar.bz2 android_packages_apps_Gallery2-599393ecad6803161d5e901ef625e34cfe088009.zip |
(re-)add vertical/horizontal lines when moving Curves
Align histogram with Curves grid.
bug:7361722
Change-Id: I327f3fb0ba844cc09f8b899e59f74d368478d30a
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/gallery3d/filtershow/ui/ImageCurves.java | 10 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/ui/Spline.java | 9 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java index 405524862..7b04133ce 100644 --- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java +++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java @@ -221,7 +221,6 @@ public class ImageCurves extends ImageSlave { } if (spline.isPointContained(posX, pick)) { - spline.didMovePoint(mCurrentControlPoint); spline.movePoint(pick, posX, posY); } else if (pick != -1 && spline.getNbPoints() > 2) { spline.deletePoint(pick); @@ -279,8 +278,9 @@ public class ImageCurves extends ImageSlave { max = histogram[i]; } } - float w = getWidth(); - float h = getHeight(); + float w = getWidth() - Spline.curveHandleSize(); + float h = getHeight() - Spline.curveHandleSize() / 2.0f; + float dx = Spline.curveHandleSize() / 2.0f; float wl = w / histogram.length; float wh = (0.3f * h) / max; Paint paint = new Paint(); @@ -292,12 +292,12 @@ public class ImageCurves extends ImageSlave { paint2.setStrokeWidth(6); paint2.setXfermode(new PorterDuffXfermode(mode)); gHistoPath.reset(); - gHistoPath.moveTo(0, h); + gHistoPath.moveTo(dx, h); boolean firstPointEncountered = false; float prev = 0; float last = 0; for (int i = 0; i < histogram.length; i++) { - float x = i * wl; + float x = i * wl + dx; float l = histogram[i] * wh; if (l != 0) { float v = h - (l + prev) / 2.0f; diff --git a/src/com/android/gallery3d/filtershow/ui/Spline.java b/src/com/android/gallery3d/filtershow/ui/Spline.java index cb0d00f47..83341772b 100644 --- a/src/com/android/gallery3d/filtershow/ui/Spline.java +++ b/src/com/android/gallery3d/filtershow/ui/Spline.java @@ -49,7 +49,11 @@ public class Spline { mPoints = new Vector<ControlPoint>(); for (int i = 0; i < spline.mPoints.size(); i++) { ControlPoint p = spline.mPoints.elementAt(i); - mPoints.add(new ControlPoint(p)); + ControlPoint newPoint = new ControlPoint(p); + mPoints.add(newPoint); + if (spline.mCurrentControlPoint == p) { + mCurrentControlPoint = newPoint; + } } Collections.sort(mPoints); } @@ -79,7 +83,7 @@ public class Spline { return Color.WHITE; } - public void didMovePoint(ControlPoint point) { + private void didMovePoint(ControlPoint point) { mCurrentControlPoint = point; } @@ -90,6 +94,7 @@ public class Spline { ControlPoint point = mPoints.elementAt(pick); point.x = x; point.y = y; + didMovePoint(point); } public boolean isOriginal() { |