summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-09-11 18:33:41 -0700
committernicolasroard <nicolasroard@google.com>2013-09-11 18:52:01 -0700
commit7a53c3d54ed06cc2fe0440fcaa01fa879d19dc88 (patch)
treed15da5d136a9319396b0303c977aed490ebebd71
parent9346e7fdd448c5ddfc3e47c067618ca0ac9c72fa (diff)
downloadandroid_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.java38
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);
}