summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2011-05-29 12:18:52 -0700
committerMichael Kolb <kolby@google.com>2011-05-31 17:17:10 -0700
commitdb343c57c970bb2e3b8f269fc4cbe90546357257 (patch)
tree5072ad940e0d225128b201e3b0382c48ad59a7e0
parentaed9c54d8e67bb683a5a415b3775525a3ac00508 (diff)
downloadpackages_apps_Browser-db343c57c970bb2e3b8f269fc4cbe90546357257.zip
packages_apps_Browser-db343c57c970bb2e3b8f269fc4cbe90546357257.tar.gz
packages_apps_Browser-db343c57c970bb2e3b8f269fc4cbe90546357257.tar.bz2
calculate scroller padding
Change-Id: I727c425e096220ae1230e3fbe0f1edb4b3fea8ed
-rw-r--r--res/layout/nav_tab_view.xml2
-rw-r--r--res/values-land/dimensions.xml1
-rw-r--r--res/values/dimensions.xml3
-rw-r--r--src/com/android/browser/NavTabScroller.java64
-rw-r--r--src/com/android/browser/NavTabView.java17
5 files changed, 55 insertions, 32 deletions
diff --git a/res/layout/nav_tab_view.xml b/res/layout/nav_tab_view.xml
index 7d9263d..5a71c71 100644
--- a/res/layout/nav_tab_view.xml
+++ b/res/layout/nav_tab_view.xml
@@ -79,7 +79,7 @@
android:src="@drawable/ic_stop_holo_dark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="right|bottom"
+ android:layout_gravity="bottom|right"
android:background="@drawable/navtab_close_background" />
</FrameLayout>
</LinearLayout>
diff --git a/res/values-land/dimensions.xml b/res/values-land/dimensions.xml
index e69bd82..df4bc84 100644
--- a/res/values-land/dimensions.xml
+++ b/res/values-land/dimensions.xml
@@ -17,5 +17,4 @@
<dimen name="preference_widget_width">72dp</dimen>
<dimen name="nav_tab_width">280dip</dimen>
<dimen name="nav_tab_height">240dip</dimen>
- <dimen name="nav_scroller_padding">101dip</dimen>
</resources>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index e1ae0eb..dbb0c60 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -71,5 +71,6 @@
<dimen name="tab_capture_size">160dp</dimen>
<dimen name="nav_tab_width">280dip</dimen>
<dimen name="nav_tab_height">280dip</dimen>
- <dimen name="nav_scroller_padding">68dip</dimen>
+ <dimen name="nav_tab_text_normal">18sp</dimen>
+ <dimen name="nav_tab_text_small">14sp</dimen>
</resources>
diff --git a/src/com/android/browser/NavTabScroller.java b/src/com/android/browser/NavTabScroller.java
index cbb2cfd..9434ff0 100644
--- a/src/com/android/browser/NavTabScroller.java
+++ b/src/com/android/browser/NavTabScroller.java
@@ -66,6 +66,25 @@ public class NavTabScroller extends FrameLayout {
addView(sview);
}
+ @Override
+ protected void onMeasure(int wspec, int hspec) {
+ super.onMeasure(wspec, hspec);
+ calcPadding();
+ }
+
+ private void calcPadding() {
+ if (mAdapter.getCount() > 0) {
+ View v = mContentView.getChildAt(0);
+ if (mOrientation == Configuration.ORIENTATION_PORTRAIT) {
+ int pad = (getMeasuredHeight() - v.getMeasuredHeight()) / 2;
+ mContentView.setPadding(0, pad, 0, pad);
+ } else {
+ int pad = (getMeasuredWidth() - v.getMeasuredWidth()) / 2;
+ mContentView.setPadding(pad, 0, pad, 0);
+ }
+ }
+ }
+
protected void setAdapter(BaseAdapter adapter) {
mAdapter = adapter;
mAdapter.registerDataSetObserver(new DataSetObserver() {
@@ -151,8 +170,6 @@ public class NavTabScroller extends FrameLayout {
mContentView.setOrientation(LinearLayout.VERTICAL);
setVerticalScrollBarEnabled(false);
setSmoothScrollingEnabled(true);
- int pad = ctx.getResources().getDimensionPixelSize(R.dimen.nav_scroller_padding);
- mContentView.setPadding(0, pad, 0, pad);
mContentView.setLayoutParams(
new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
addView(mContentView);
@@ -185,10 +202,6 @@ public class NavTabScroller extends FrameLayout {
if (sel != mSelected) {
setSelection(sel);
}
- if (!isCentered(mSelected)) {
- NavTabView ntv = (NavTabView) getSelectedView();
- ntv.setHighlighted(false);
- }
}
}
@@ -201,6 +214,11 @@ public class NavTabScroller extends FrameLayout {
if (mScroller.isFinished() && dragged) {
snapToSelected();
}
+ } else if (MotionEvent.ACTION_MOVE == evt.getActionMasked()) {
+ NavTabView ntv = (NavTabView) getSelectedView();
+ if (mIsBeingDragged && ntv.isHighlighted()) {
+ ntv.setHighlighted(false);
+ }
}
return result;
}
@@ -215,17 +233,11 @@ public class NavTabScroller extends FrameLayout {
// reset snap scrolling flag
mSnapScroll = false;
NavTabView ntv = (NavTabView) getSelectedView();
- ntv.setHighlighted(isCentered(mSelected));
+ ntv.setHighlighted(true);
}
}
}
- private boolean isCentered(int ix) {
- int midy = getScrollY() + (getTop() + getBottom()) / 2;
- View v = mContentView.getChildAt(ix);
- return (v.getTop() + v.getBottom()) / 2 == midy;
- }
-
private void snapToSelected() {
View v = mContentView.getChildAt(mSelected);
int top = (v.getTop() + v.getBottom()) / 2;
@@ -234,6 +246,9 @@ public class NavTabScroller extends FrameLayout {
// snap to selected
mSnapScroll = true;
smoothScrollTo(0, top);
+ } else {
+ NavTabView ntv = (NavTabView) getSelectedView();
+ ntv.setHighlighted(true);
}
}
@@ -270,12 +285,9 @@ public class NavTabScroller extends FrameLayout {
mContentView.setOrientation(LinearLayout.HORIZONTAL);
setVerticalScrollBarEnabled(false);
setSmoothScrollingEnabled(true);
- int pad = ctx.getResources().getDimensionPixelSize(R.dimen.nav_scroller_padding);
- mContentView.setPadding(pad, 0, pad, 0);
mContentView.setLayoutParams(
new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
addView(mContentView);
-
}
public LinearLayout getContentView() {
@@ -304,10 +316,6 @@ public class NavTabScroller extends FrameLayout {
if (sel != mSelected) {
setSelection(sel);
}
- if (!isCentered(mSelected)) {
- NavTabView ntv = (NavTabView) getSelectedView();
- ntv.setHighlighted(false);
- }
}
}
@@ -320,6 +328,11 @@ public class NavTabScroller extends FrameLayout {
if (mScroller.isFinished() && dragged) {
snapToSelected();
}
+ } else if (MotionEvent.ACTION_MOVE == evt.getActionMasked()) {
+ NavTabView ntv = (NavTabView) getSelectedView();
+ if (mIsBeingDragged && ntv.isHighlighted()) {
+ ntv.setHighlighted(false);
+ }
}
return result;
}
@@ -334,17 +347,11 @@ public class NavTabScroller extends FrameLayout {
// reset snap scrolling flag
mSnapScroll = false;
NavTabView ntv = (NavTabView) getSelectedView();
- ntv.setHighlighted(isCentered(mSelected));
+ ntv.setHighlighted(true);
}
}
}
- private boolean isCentered(int ix) {
- int midx = getScrollX() + getWidth() / 2;
- View v = mContentView.getChildAt(ix);
- return (v.getLeft() + v.getRight()) / 2 == midx;
- }
-
private void snapToSelected() {
View v = mContentView.getChildAt(mSelected);
int left = (v.getLeft() + v.getRight()) / 2;
@@ -353,6 +360,9 @@ public class NavTabScroller extends FrameLayout {
// snap to selected
mSnapScroll = true;
smoothScrollTo(left, 0);
+ } else {
+ NavTabView ntv = (NavTabView) getSelectedView();
+ ntv.setHighlighted(true);
}
}
diff --git a/src/com/android/browser/NavTabView.java b/src/com/android/browser/NavTabView.java
index 14453dc..ec42c94 100644
--- a/src/com/android/browser/NavTabView.java
+++ b/src/com/android/browser/NavTabView.java
@@ -17,8 +17,10 @@
package com.android.browser;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
+import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -42,6 +44,9 @@ public class NavTabView extends LinearLayout {
OnClickListener mClickListener;
boolean mHighlighted;
Drawable mTitleBg;
+ Drawable mUrlBg;
+ float mMediumTextSize;
+ float mSmallTextSize;
public NavTabView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@@ -59,6 +64,9 @@ public class NavTabView extends LinearLayout {
}
private void init() {
+ final Resources res = mContext.getResources();
+ mMediumTextSize = res.getDimension(R.dimen.nav_tab_text_normal);
+ mSmallTextSize = res.getDimension(R.dimen.nav_tab_text_small);
LayoutInflater.from(mContext).inflate(R.layout.nav_tab_view,
this);
mContainer = (FrameLayout) findViewById(R.id.tab_view);
@@ -68,9 +76,10 @@ public class NavTabView extends LinearLayout {
mTitle = (TextView) findViewById(R.id.title);
mFavicon = (ImageView) findViewById(R.id.favicon);
mTitleBar = findViewById(R.id.titlebar);
- mTitleBg = mContext.getResources().getDrawable(R.drawable.bg_urlbar);
+ mTitleBg = res.getDrawable(R.drawable.bg_urlbar);
+ mUrlBg = res.getDrawable(
+ com.android.internal.R.drawable.edit_text_holo_dark);
setState(false);
- // refresh titlebar
}
protected boolean isRefresh(View v) {
@@ -108,6 +117,8 @@ public class NavTabView extends LinearLayout {
? View.VISIBLE : View.GONE);
mTitleBar.setBackgroundDrawable(mTitleBg);
mClose.setVisibility(View.VISIBLE);
+ mTitle.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMediumTextSize);
+ mTitle.setBackgroundDrawable(mUrlBg);
} else {
setAlpha(0.8f);
mForward.setVisibility(View.GONE);
@@ -115,6 +126,8 @@ public class NavTabView extends LinearLayout {
mFavicon.setVisibility(View.INVISIBLE);
mClose.setVisibility(View.GONE);
mTitleBar.setBackgroundDrawable(null);
+ mTitle.setTextSize(TypedValue.COMPLEX_UNIT_PX, mSmallTextSize);
+ mTitle.setBackgroundDrawable(null);
}
setTitle();
}