From 1a8f3c45241eaa047116f33e08bcb77b4924daf3 Mon Sep 17 00:00:00 2001 From: Michael Kolb Date: Fri, 23 Sep 2011 14:10:22 -0700 Subject: Add transparency to tab switcher Bug: 5361553 This fixes the transparency issue. No change to physics. Change-Id: I85177dd87296155ad923f3967d311337b6cd8b52 --- src/com/android/browser/NavTabScroller.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/com/android/browser/NavTabScroller.java') 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); } -- cgit v1.2.3