From 867ca62c0e4b811d46734ff940d59c7a787525c8 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 21 Feb 2012 15:48:35 -0800 Subject: Fading out workspace when dragging to higlight dragged object. Change-Id: I540ce145168a65a029d820d6c14a1e3070f8a5b0 --- res/values-sw600dp/dimens.xml | 2 +- res/values/config.xml | 4 ++++ res/values/dimens.xml | 2 +- src/com/android/launcher2/DragView.java | 8 +++++--- src/com/android/launcher2/PagedView.java | 2 +- src/com/android/launcher2/Workspace.java | 17 ++++++++++++++--- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml index 2d72e1041..81fe13bf2 100644 --- a/res/values-sw600dp/dimens.xml +++ b/res/values-sw600dp/dimens.xml @@ -74,7 +74,7 @@ -12dp - 12dp + 8dp diff --git a/res/values/config.xml b/res/values/config.xml index 70e65c9ac..259385f51 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -71,6 +71,10 @@ 800 + + 80 + 250 + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index c4a66ac1f..c6dfb49af 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -112,7 +112,7 @@ -8dp - 12dp + 8dp 8dp diff --git a/src/com/android/launcher2/DragView.java b/src/com/android/launcher2/DragView.java index 90b2083a0..79f9b8139 100644 --- a/src/com/android/launcher2/DragView.java +++ b/src/com/android/launcher2/DragView.java @@ -32,7 +32,7 @@ import android.view.animation.DecelerateInterpolator; import com.android.launcher.R; public class DragView extends View { - private static float sDragAlpha = 0.8f; + private static float sDragAlpha = 1f; private Bitmap mBitmap; private Bitmap mCrossFadeBitmap; @@ -75,7 +75,7 @@ public class DragView extends View { // Animate the view into the correct position mAnim = ValueAnimator.ofFloat(0.0f, 1.0f); mAnim.setDuration(150); - mAnim.setInterpolator(new DecelerateInterpolator(2.5f)); + mAnim.setInterpolator(new DecelerateInterpolator(1.5f)); mAnim.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -88,7 +88,9 @@ public class DragView extends View { mOffsetY += deltaY; setScaleX(1f + (value * (scale - 1f))); setScaleY(1f + (value * (scale - 1f))); - setAlpha(sDragAlpha * value + (1f - value)); + if (sDragAlpha != 1f) { + setAlpha(sDragAlpha * value + (1f - value)); + } if (getParent() == null) { animation.cancel(); diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 184ea7a3c..a615b59f2 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -67,7 +67,7 @@ public abstract class PagedView extends ViewGroup { private static final float OVERSCROLL_ACCELERATE_FACTOR = 2; private static final float OVERSCROLL_DAMP_FACTOR = 0.14f; - + private static final float RETURN_TO_ORIGINAL_PAGE_THRESHOLD = 0.33f; // The page is moved more than halfway, automatically move to the next page on touch up. private static final float SIGNIFICANT_MOVE_THRESHOLD = 0.4f; diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 0d7498ab0..1643be537 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -210,6 +210,10 @@ public class Workspace extends SmoothPagedView public static final int COMPLETE_TWO_STAGE_WIDGET_DROP_ANIMATION = 1; public static final int CANCEL_TWO_STAGE_WIDGET_DROP_ANIMATION = 2; + // Relating to workspace drag fade out + private float mDragFadeOutAlpha; + private int mDragFadeOutDuration; + // These variables are used for storing the initial and final values during workspace animations private int mSavedScrollX; private float mSavedRotationY; @@ -261,8 +265,10 @@ public class Workspace extends SmoothPagedView // With workspace, data is available straight from the get-go setDataIsReady(); - mFadeInAdjacentScreens = - getResources().getBoolean(R.bool.config_workspaceFadeAdjacentScreens); + final Resources res = getResources(); + mFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens); + mDragFadeOutAlpha = res.getInteger(R.integer.config_dragFadeOutAlpha) / 100f; + mDragFadeOutDuration = res.getInteger(R.integer.config_dragFadeOutDuration); mWallpaperManager = WallpaperManager.getInstance(context); int cellCountX = DEFAULT_CELL_COUNT_X; @@ -271,7 +277,6 @@ public class Workspace extends SmoothPagedView TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0); - final Resources res = context.getResources(); if (LauncherApplication.isScreenLarge()) { // Determine number of rows/columns dynamically // TODO: This code currently fails on tablets with an aspect ratio < 1.3. @@ -358,12 +363,18 @@ public class Workspace extends SmoothPagedView mIsDragOccuring = true; updateChildrenLayersEnabled(); mLauncher.lockScreenOrientationOnLargeUI(); + + // Fade out the workspace slightly to highlight the currently dragging item + animate().alpha(mDragFadeOutAlpha).setDuration(mDragFadeOutDuration).start(); } public void onDragEnd() { mIsDragOccuring = false; updateChildrenLayersEnabled(); mLauncher.unlockScreenOrientationOnLargeUI(); + + // Fade the workspace back in after we have completed dragging + animate().alpha(1f).setDuration(mDragFadeOutDuration).start(); } /** -- cgit v1.2.3