diff options
| author | nicolasroard <nicolasroard@google.com> | 2013-09-11 18:33:41 -0700 |
|---|---|---|
| committer | nicolasroard <nicolasroard@google.com> | 2013-09-11 18:52:01 -0700 |
| commit | 7a53c3d54ed06cc2fe0440fcaa01fa879d19dc88 (patch) | |
| tree | d15da5d136a9319396b0303c977aed490ebebd71 | |
| parent | 9346e7fdd448c5ddfc3e47c067618ca0ac9c72fa (diff) | |
| download | android_packages_apps_Gallery2-7a53c3d54ed06cc2fe0440fcaa01fa879d19dc88.tar.gz android_packages_apps_Gallery2-7a53c3d54ed06cc2fe0440fcaa01fa879d19dc88.tar.bz2 android_packages_apps_Gallery2-7a53c3d54ed06cc2fe0440fcaa01fa879d19dc88.zip | |
Fix straighten tool
- fix grid display
- show grid upon launch
- grid disappear after 500ms
bug:10705772
Change-Id: I499d5e6d9c02ddcc8f540f2bedb58c86cc744e44
| -rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java index e00e55293..9b5f0f839 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java @@ -16,6 +16,7 @@ package com.android.gallery3d.filtershow.imageshow; +import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -56,6 +57,11 @@ public class ImageStraighten extends ImageShow { NONE, MOVE } private MODES mState = MODES.NONE; + private ValueAnimator mAnimator = null; + private int mDefaultGridAlpha = 60; + private float mGridAlpha = 1f; + private int mOnStartAnimDelay = 1000; + private int mAnimDelay = 500; private static final float MAX_STRAIGHTEN_ANGLE = FilterStraightenRepresentation.MAX_STRAIGHTEN_ANGLE; private static final float MIN_STRAIGHTEN_ANGLE @@ -75,6 +81,27 @@ public class ImageStraighten extends ImageShow { super(context, attrs); } + @Override + public void attach() { + super.attach(); + mGridAlpha = 1f; + hidesGrid(mOnStartAnimDelay); + } + + private void hidesGrid(int delay) { + mAnimator = ValueAnimator.ofFloat(1, 0); + mAnimator.setStartDelay(delay); + mAnimator.setDuration(mAnimDelay); + mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mGridAlpha = ((Float) animation.getAnimatedValue()); + invalidate(); + } + }); + mAnimator.start(); + } + public void setFilterStraightenRepresentation(FilterStraightenRepresentation rep) { mLocalRep = (rep == null) ? new FilterStraightenRepresentation() : rep; mInitialAngle = mBaseAngle = mAngle = mLocalRep.getStraighten(); @@ -112,6 +139,7 @@ public class ImageStraighten extends ImageShow { mCurrentY = y; computeValue(); mFirstDrawSinceUp = true; + hidesGrid(0); } break; case (MotionEvent.ACTION_MOVE): @@ -246,15 +274,19 @@ public class ImageStraighten extends ImageShow { } CropDrawingUtils.drawShade(canvas, mDrawRect); // Draw the grid - if (mState == MODES.MOVE) { + if (mState == MODES.MOVE || mGridAlpha > 0) { canvas.save(); canvas.clipRect(mDrawRect); - float step = Math.max(viewWidth,viewWidth) / NBLINES; + float step = Math.max(viewWidth, viewHeight) / NBLINES; float p = 0; for (int i = 1; i < NBLINES; i++) { p = i * step; - mPaint.setAlpha(60); + int alpha = (int) (mDefaultGridAlpha * mGridAlpha); + if (alpha == 0 && mState == MODES.MOVE) { + alpha = mDefaultGridAlpha; + } + mPaint.setAlpha(alpha); canvas.drawLine(p, 0, p, viewHeight, mPaint); canvas.drawLine(0, p, viewHeight, p, mPaint); } |
