summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-04-27 10:11:03 -0700
committerJohn Reck <jreck@google.com>2011-04-27 10:11:03 -0700
commitadc921feeb327ed118711d4abddfaa421c841290 (patch)
tree832c46a6429f9e48bc60516023e5adde01676681
parent355f30adc34c4654a734a0e666aae420c0a55d82 (diff)
downloadandroid_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.xml4
-rw-r--r--res/layout/nav_tab_view.xml4
-rw-r--r--res/values/dimensions.xml1
-rw-r--r--src/com/android/browser/NavScreen.java4
-rw-r--r--src/com/android/browser/PhoneUi.java24
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();