diff options
author | nicolasroard <nicolasroard@google.com> | 2012-10-18 17:53:44 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2012-10-18 23:36:56 -0700 |
commit | b184f83254e8a930112c4db9364669a936f295d8 (patch) | |
tree | 5b71c06911f2471acd73382ea6b22c12d5625677 /src/com/android/gallery3d/filtershow/ui/Spline.java | |
parent | 3b50e7b4baceebfea3fb3ccc7aca2966a20d02b9 (diff) | |
download | android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.gz android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.bz2 android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.zip |
Improves Curves & Crop UI
bug:7361722
- Use new assets
- Add a margin
- Add a popup menu
- Add a new button showing the current channel
- Add popup menu, new assets, new button for Crop as well
Change-Id: I0e09098e3135d2213f7f4cd64cd75a3a518a07da
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui/Spline.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/ui/Spline.java | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/Spline.java b/src/com/android/gallery3d/filtershow/ui/Spline.java index ddbf97c74..67840dc23 100644 --- a/src/com/android/gallery3d/filtershow/ui/Spline.java +++ b/src/com/android/gallery3d/filtershow/ui/Spline.java @@ -24,6 +24,7 @@ public class Spline { private static final String LOGTAG = "Spline"; private final Paint gPaint = new Paint(); + private ControlPoint mCurrentControlPoint = null; public Spline() { mPoints = new Vector<ControlPoint>(); @@ -63,6 +64,10 @@ public class Spline { return Color.WHITE; } + public void didMovePoint(ControlPoint point) { + mCurrentControlPoint = point; + } + public boolean isOriginal() { if (this.getNbPoints() > 2) { return false; @@ -169,10 +174,10 @@ public class Spline { } public void draw(Canvas canvas, int color, int canvasWidth, int canvasHeight, - boolean showHandles) { - float w = canvasWidth; + boolean showHandles, boolean moving) { + float w = canvasWidth - mCurveHandleSize; float h = canvasHeight - mCurveHandleSize; - float dx = 0; + float dx = mCurveHandleSize / 2; float dy = mCurveHandleSize / 2; // The cubic spline equation is (from numerical recipes in C): @@ -249,6 +254,20 @@ public class Spline { paint.setStrokeWidth(curveWidth + 2); paint.setColor(Color.BLACK); canvas.drawPath(path, paint); + + if (moving && mCurrentControlPoint != null) { + float px = mCurrentControlPoint.x * w; + float py = mCurrentControlPoint.y * h; + paint.setStrokeWidth(3); + paint.setColor(Color.BLACK); + canvas.drawLine(px, py, px, h, paint); + canvas.drawLine(0, py, px, py, paint); + paint.setStrokeWidth(1); + paint.setColor(color); + canvas.drawLine(px, py, px, h, paint); + canvas.drawLine(0, py, px, py, paint); + } + paint.setStrokeWidth(curveWidth); paint.setColor(color); canvas.drawPath(path, paint); |