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);
}