diff options
author | Michael Kolb <kolby@google.com> | 2011-09-23 14:53:37 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-23 14:53:37 -0700 |
commit | ca050b898f65902696bedeb6c9a12e8ea2bc3434 (patch) | |
tree | 00d6531ef731f03fe80ff490c25104d92435a840 | |
parent | 4cd25485194a8154efcd7b93d0cf530ebac563f2 (diff) | |
parent | 1a8f3c45241eaa047116f33e08bcb77b4924daf3 (diff) | |
download | packages_apps_Browser-ca050b898f65902696bedeb6c9a12e8ea2bc3434.zip packages_apps_Browser-ca050b898f65902696bedeb6c9a12e8ea2bc3434.tar.gz packages_apps_Browser-ca050b898f65902696bedeb6c9a12e8ea2bc3434.tar.bz2 |
Merge "Add transparency to tab switcher"
-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 03bf595..8251928 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); } |