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/ImageCurves.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/ImageCurves.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/ui/ImageCurves.java | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java index 84edf234a..78898610d 100644 --- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java +++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java @@ -13,6 +13,7 @@ import android.os.AsyncTask; import android.util.AttributeSet; import android.view.MotionEvent; +import com.android.gallery3d.R; import com.android.gallery3d.filtershow.filters.ImageFilterCurves; import com.android.gallery3d.filtershow.imageshow.ImageSlave; import com.android.gallery3d.filtershow.presets.ImagePreset; @@ -23,7 +24,7 @@ public class ImageCurves extends ImageSlave { Paint gPaint = new Paint(); Path gPathSpline = new Path(); - private int mCurrentCurveIndex = 0; + private int mCurrentCurveIndex = Spline.RGB; private boolean mDidAddPoint = false; private boolean mDidDelete = false; private ControlPoint mCurrentControlPoint = null; @@ -33,6 +34,8 @@ public class ImageCurves extends ImageSlave { int[] blueHistogram = new int[256]; Path gHistoPath = new Path(); + boolean mDoingTouchMove = false; + public ImageCurves(Context context) { super(context); resetCurve(); @@ -107,14 +110,15 @@ public class ImageCurves extends ImageSlave { if (i != mCurrentCurveIndex && !spline.isOriginal()) { // And we only display a curve if it has more than two // points - spline.draw(canvas, Spline.colorForCurve(i), getWidth(), getHeight(), false); + spline.draw(canvas, Spline.colorForCurve(i), getWidth(), + getHeight(), false, mDoingTouchMove); } } } // ...but we always display the current curve. getSpline(mCurrentCurveIndex) .draw(canvas, Spline.colorForCurve(mCurrentCurveIndex), getWidth(), getHeight(), - true); + true, mDoingTouchMove); drawToast(canvas); } @@ -168,8 +172,10 @@ public class ImageCurves extends ImageSlave { if (mDidDelete) { mDidDelete = false; } + mDoingTouchMove = false; return true; } + mDoingTouchMove = true; if (mDidDelete) { return true; @@ -190,7 +196,8 @@ public class ImageCurves extends ImageSlave { if (spline.isPointContained(posX, pick)) { mCurrentControlPoint.x = posX; mCurrentControlPoint.y = posY; - } else if (pick != -1) { + spline.didMovePoint(mCurrentControlPoint); + } else if (pick != -1 && spline.getNbPoints() > 2) { spline.deletePoint(pick); mDidDelete = true; } @@ -285,4 +292,26 @@ public class ImageCurves extends ImageSlave { paint2.setARGB(255, 200, 200, 200); canvas.drawPath(gHistoPath, paint2); } + + public void setChannel(int itemId) { + switch (itemId) { + case R.id.curve_menu_rgb: { + mCurrentCurveIndex = Spline.RGB; + break; + } + case R.id.curve_menu_red: { + mCurrentCurveIndex = Spline.RED; + break; + } + case R.id.curve_menu_green: { + mCurrentCurveIndex = Spline.GREEN; + break; + } + case R.id.curve_menu_blue: { + mCurrentCurveIndex = Spline.BLUE; + break; + } + } + invalidate(); + } } |