diff options
author | John Reck <jreck@google.com> | 2011-04-27 10:11:03 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-04-27 10:11:03 -0700 |
commit | adc921feeb327ed118711d4abddfaa421c841290 (patch) | |
tree | 832c46a6429f9e48bc60516023e5adde01676681 /src | |
parent | 355f30adc34c4654a734a0e666aae420c0a55d82 (diff) | |
download | android_packages_apps_Gello-adc921feeb327ed118711d4abddfaa421c841290.tar.gz android_packages_apps_Gello-adc921feeb327ed118711d4abddfaa421c841290.tar.bz2 android_packages_apps_Gello-adc921feeb327ed118711d4abddfaa421c841290.zip |
Smoother animations please
Change-Id: Ie27fef1678f758bdaf43f90d5baeabdeef3b9f83
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/browser/NavScreen.java | 4 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 24 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java index edbaa3be..c61c39f6 100644 --- a/src/com/android/browser/NavScreen.java +++ b/src/com/android/browser/NavScreen.java @@ -100,6 +100,10 @@ public class NavScreen extends LinearLayout implements OnClickListener { mPopup = popup; } + protected float getToolbarHeight() { + return mActivity.getResources().getDimension(R.dimen.toolbar_height); + } + protected void dismissMenu() { if (mPopup != null) { mPopup.dismiss(); diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index fe131399..13a5257c 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -298,10 +298,12 @@ public class PhoneUi extends BaseUi { if (mAnimating) return; mAnimating = true; mNavScreen = new NavScreen(mActivity, mUiController, this); + float yoffset = 0; WebView web = getWebView(); if (web != null) { int w = web.getWidth(); int h = web.getHeight(); + yoffset = mNavScreen.getToolbarHeight() - web.getVisibleTitleHeight(); mNavScreen.setTabDimensions((int) (w * NAV_TAB_SCALE), (int) (h * NAV_TAB_SCALE)); } @@ -309,9 +311,11 @@ public class PhoneUi extends BaseUi { mCustomViewContainer.addView(mNavScreen, COVER_SCREEN_GRAVITY_CENTER); mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null); ObjectAnimator animx = ObjectAnimator.ofFloat(mContentView, - "scaleX", 1.0f, 0.85f); + "scaleX", 1.0f, NAV_TAB_SCALE); ObjectAnimator animy = ObjectAnimator.ofFloat(mContentView, - "scaleY", 1.0f, 0.85f); + "scaleY", 1.0f, NAV_TAB_SCALE); + ObjectAnimator translatey = ObjectAnimator.ofFloat(mContentView, + "translationY", 0, yoffset * NAV_TAB_SCALE); AnimatorSet anims = new AnimatorSet(); anims.setDuration(200); anims.addListener(new AnimatorListener() { @@ -333,7 +337,7 @@ public class PhoneUi extends BaseUi { public void onAnimationStart(Animator animation) { } }); - anims.playTogether(animx, animy); + anims.playTogether(animx, animy, translatey); anims.start(); } @@ -343,6 +347,7 @@ public class PhoneUi extends BaseUi { mContentView.setVisibility(View.GONE); mContentView.setScaleX(1.0f); mContentView.setScaleY(1.0f); + mContentView.setTranslationY(0); BrowserWebView web = (BrowserWebView) getWebView(); if (web != null) { mActiveTab.setScreenshot(web.capture()); @@ -358,10 +363,17 @@ public class PhoneUi extends BaseUi { mAnimating = true; mNavScreen.setLayerType(View.LAYER_TYPE_HARDWARE, null); if (animateToPage) { + float yoffset = 0; + WebView web = mNavScreen.getSelectedTab().getWebView(); + if (web != null) { + yoffset = mNavScreen.getToolbarHeight() - web.getVisibleTitleHeight(); + } ObjectAnimator animx = ObjectAnimator.ofFloat(mNavScreen, "scaleX", - 1.0f, 1.2f); + 1.0f, 1 / NAV_TAB_SCALE); ObjectAnimator animy = ObjectAnimator.ofFloat(mNavScreen, "scaleY", - 1.0f, 1.2f); + 1.0f, 1 / NAV_TAB_SCALE); + ObjectAnimator translatey = ObjectAnimator.ofFloat(mNavScreen, + "translationY", 0, -yoffset); AnimatorSet anims = new AnimatorSet(); anims.setDuration(200); anims.addListener(new AnimatorListener() { @@ -383,7 +395,7 @@ public class PhoneUi extends BaseUi { public void onAnimationStart(Animator animation) { } }); - anims.playTogether(animx, animy); + anims.playTogether(animx, animy, translatey); anims.start(); } else { finishHideNavScreen(); |