Add transparency to tab switcher

    Bug: 5361553
    This fixes the transparency issue. No change to physics.

Change-Id: I85177dd87296155ad923f3967d311337b6cd8b52
diff --git a/src/com/android/browser/NavTabScroller.java b/src/com/android/browser/NavTabScroller.java
index 03bf595..8251928 100644
--- a/src/com/android/browser/NavTabScroller.java
+++ b/src/com/android/browser/NavTabScroller.java
@@ -60,7 +60,7 @@
 
     // 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 @@
         }
         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 @@
     }
 
     private void offsetView(View v, float distance) {
+        v.setAlpha(getAlpha(v, distance));
         if (mHorizontal) {
             v.setTranslationY(distance);
         } else {
@@ -422,7 +428,12 @@
         }
     }
 
-    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);
     }