diff options
| author | Michael Kolb <kolby@google.com> | 2011-09-23 14:10:22 -0700 |
|---|---|---|
| committer | Michael Kolb <kolby@google.com> | 2011-09-23 14:12:14 -0700 |
| commit | 1a8f3c45241eaa047116f33e08bcb77b4924daf3 (patch) | |
| tree | 8a9dbc11861033ddb54f8de2d7a70bfc0fe15190 /src/com/android/browser/NavTabScroller.java | |
| parent | b99d2d01d1a5ea003d76979ca50f1fe2b12e688d (diff) | |
| download | packages_apps_Browser-1a8f3c45241eaa047116f33e08bcb77b4924daf3.tar.gz packages_apps_Browser-1a8f3c45241eaa047116f33e08bcb77b4924daf3.tar.bz2 packages_apps_Browser-1a8f3c45241eaa047116f33e08bcb77b4924daf3.zip | |
Add transparency to tab switcher
Bug: 5361553
This fixes the transparency issue. No change to physics.
Change-Id: I85177dd87296155ad923f3967d311337b6cd8b52
Diffstat (limited to 'src/com/android/browser/NavTabScroller.java')
| -rw-r--r-- | src/com/android/browser/NavTabScroller.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/com/android/browser/NavTabScroller.java b/src/com/android/browser/NavTabScroller.java index 03bf5953b..82519287b 100644 --- a/src/com/android/browser/NavTabScroller.java +++ b/src/com/android/browser/NavTabScroller.java @@ -60,7 +60,7 @@ public class NavTabScroller extends ScrollerView { // after drag animation velocity in pixels/sec private static final float MIN_VELOCITY = 1500; - private Animator mAnimator; + private AnimatorSet mAnimator; private float mFlingVelocity; private boolean mNeedsScroll; @@ -335,11 +335,16 @@ public class NavTabScroller extends ScrollerView { } int distance = target - (mHorizontal ? v.getTop() : v.getLeft()); long duration = (long) (Math.abs(distance) * 1000 / Math.abs(velocity)); + mAnimator = new AnimatorSet(); + ObjectAnimator trans; + ObjectAnimator alpha = ObjectAnimator.ofFloat(v, ALPHA, getAlpha(v,start), + getAlpha(v,target)); if (mHorizontal) { - mAnimator = ObjectAnimator.ofFloat(v, TRANSLATION_Y, start, target); + trans = ObjectAnimator.ofFloat(v, TRANSLATION_Y, start, target); } else { - mAnimator = ObjectAnimator.ofFloat(v, TRANSLATION_X, start, target); + trans = ObjectAnimator.ofFloat(v, TRANSLATION_X, start, target); } + mAnimator.playTogether(trans, alpha); mAnimator.setDuration(duration); mAnimator.addListener(new AnimatorListenerAdapter() { public void onAnimationEnd(Animator a) { @@ -415,6 +420,7 @@ public class NavTabScroller extends ScrollerView { } private void offsetView(View v, float distance) { + v.setAlpha(getAlpha(v, distance)); if (mHorizontal) { v.setTranslationY(distance); } else { @@ -422,7 +428,12 @@ public class NavTabScroller extends ScrollerView { } } - private float ease(DecelerateInterpolator inter, float value, float start, float dist, float duration) { + private float getAlpha(View v, float distance) { + return 1 - (float) Math.abs(distance) / (mHorizontal ? v.getHeight() : v.getWidth()); + } + + private float ease(DecelerateInterpolator inter, float value, float start, + float dist, float duration) { return start + dist * inter.getInterpolation(value / duration); } |
