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 | |
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
-rw-r--r-- | res/layout/nav_screen.xml | 4 | ||||
-rw-r--r-- | res/layout/nav_tab_view.xml | 4 | ||||
-rw-r--r-- | res/values/dimensions.xml | 1 | ||||
-rw-r--r-- | src/com/android/browser/NavScreen.java | 4 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 24 |
5 files changed, 28 insertions, 9 deletions
diff --git a/res/layout/nav_screen.xml b/res/layout/nav_screen.xml index eb5059c9..21701549 100644 --- a/res/layout/nav_screen.xml +++ b/res/layout/nav_screen.xml @@ -62,7 +62,9 @@ android:id="@+id/galleryholder" android:layout_width="match_parent" android:layout_height="0dip" - android:layout_weight="1" /> + android:layout_weight="1" + android:paddingTop="5dp" + android:paddingBottom="5dp" /> <LinearLayout android:id="@+id/navbar" android:orientation="horizontal" diff --git a/res/layout/nav_tab_view.xml b/res/layout/nav_tab_view.xml index f6af975b..f9e471b4 100644 --- a/res/layout/nav_tab_view.xml +++ b/res/layout/nav_tab_view.xml @@ -27,7 +27,7 @@ android:id="@+id/titlebar" android:orientation="horizontal" android:layout_width="match_parent" - android:layout_height="44dip" > + android:layout_height="@dimen/toolbar_height" > <ImageView android:id="@+id/favicon" android:layout_width="22dip" @@ -67,4 +67,4 @@ android:layout_height="wrap_content" android:adjustViewBounds="true" android:scaleType="fitXY" /> -</com.android.browser.view.TabHolderView>
\ No newline at end of file +</com.android.browser.view.TabHolderView> diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml index 58fbe526..4d1c534d 100644 --- a/res/values/dimensions.xml +++ b/res/values/dimensions.xml @@ -66,4 +66,5 @@ <dimen name="preference_widget_width">56dp</dimen> <dimen name="nav_tab_spacing">8dp</dimen> <dimen name="menu_width">240dip</dimen> + <dimen name="toolbar_height">40dip</dimen> </resources> 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(); |