summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2011-02-08 14:57:19 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-02-08 14:57:19 -0800
commit024bbea2155dc37df87b337007a887029f9d1cab (patch)
treed0331d894acbe1fbc348d4c685ebf1b896241441 /tools
parent1e09ca2a1f3e9ce2dbe538c0fbedb687c3f5738c (diff)
parentdc3fc3dc2717461113a2963c224cb190457599d8 (diff)
downloadframeworks_base-024bbea2155dc37df87b337007a887029f9d1cab.zip
frameworks_base-024bbea2155dc37df87b337007a887029f9d1cab.tar.gz
frameworks_base-024bbea2155dc37df87b337007a887029f9d1cab.tar.bz2
am dc3fc3dc: Merge "LayoutLib: fix the background of title/action bars." into honeycomb
* commit 'dc3fc3dc2717461113a2963c224cb190457599d8': LayoutLib: fix the background of title/action bars.
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java1
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/PhoneSystemBar.java1
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/TabletSystemBar.java2
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java39
4 files changed, 30 insertions, 13 deletions
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
index 70c507c..771d89a 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
@@ -65,7 +65,6 @@ abstract class CustomBar extends LinearLayout {
super(context);
setOrientation(LinearLayout.HORIZONTAL);
setGravity(Gravity.CENTER_VERTICAL);
- setBackgroundColor(0xFF000000);
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/PhoneSystemBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/PhoneSystemBar.java
index e3022b4..04d06e4 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/PhoneSystemBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/PhoneSystemBar.java
@@ -33,6 +33,7 @@ public class PhoneSystemBar extends CustomBar {
super(context, density, "/bars/tablet_system_bar.xml");
setGravity(mGravity | Gravity.RIGHT);
+ setBackgroundColor(0xFF000000);
// Cannot access the inside items through id because no R.id values have been
// created for them.
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/TabletSystemBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/TabletSystemBar.java
index db1efdb..5ca68fa 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/TabletSystemBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/TabletSystemBar.java
@@ -31,6 +31,8 @@ public class TabletSystemBar extends CustomBar {
public TabletSystemBar(Context context, Density density) throws XmlPullParserException {
super(context, density, "/bars/tablet_system_bar.xml");
+ setBackgroundColor(0xFF000000);
+
// Cannot access the inside items through id because no R.id values have been
// created for them.
// We do know the order though.
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
index 3e5127e..136b205 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
@@ -204,8 +204,11 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
SessionParams params = getParams();
BridgeContext context = getContext();
+ // the view group that receives the window background.
+ ViewGroup backgroundView = null;
+
if (mWindowIsFloating || params.isForceNoDecor()) {
- mViewRoot = mContentRoot = new FrameLayout(context);
+ backgroundView = mViewRoot = mContentRoot = new FrameLayout(context);
} else {
/*
* we're creating the following layout
@@ -213,10 +216,13 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
+-------------------------------------------------+
| System bar (only in phone UI) |
+-------------------------------------------------+
- | Title/Action bar (optional) |
- +-------------------------------------------------+
- | Content, vertical extending |
- | |
+ | (Layout with background drawable) |
+ | +---------------------------------------------+ |
+ | | Title/Action bar (optional) | |
+ | +---------------------------------------------+ |
+ | | Content, vertical extending | |
+ | | | |
+ | +---------------------------------------------+ |
+-------------------------------------------------+
| System bar (only in tablet UI) |
+-------------------------------------------------+
@@ -241,6 +247,16 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
}
}
+ LinearLayout backgroundLayout = new LinearLayout(context);
+ backgroundView = backgroundLayout;
+ backgroundLayout.setOrientation(LinearLayout.VERTICAL);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ layoutParams.weight = 1;
+ backgroundLayout.setLayoutParams(layoutParams);
+ topLayout.addView(backgroundLayout);
+
+
// if the theme says no title/action bar, then the size will be 0
if (mActionBarSize > 0) {
try {
@@ -250,7 +266,7 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
actionBar.setLayoutParams(
new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, mActionBarSize));
- topLayout.addView(actionBar);
+ backgroundLayout.addView(actionBar);
} catch (XmlPullParserException e) {
}
@@ -261,7 +277,7 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
titleBar.setLayoutParams(
new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, mTitleBarSize));
- topLayout.addView(titleBar);
+ backgroundLayout.addView(titleBar);
} catch (XmlPullParserException e) {
}
@@ -270,11 +286,11 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
// content frame
mContentRoot = new FrameLayout(context);
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ layoutParams = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.weight = 1;
mContentRoot.setLayoutParams(layoutParams);
- topLayout.addView(mContentRoot);
+ backgroundLayout.addView(mContentRoot);
if (mSystemBarSize > 0) {
// system bar
@@ -289,7 +305,6 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
}
}
-
}
@@ -314,9 +329,9 @@ public class RenderSessionImpl extends RenderAction<SessionParams> {
postInflateProcess(view, params.getProjectCallback());
// get the background drawable
- if (mWindowBackground != null) {
+ if (mWindowBackground != null && backgroundView != null) {
Drawable d = ResourceHelper.getDrawable(mWindowBackground, context);
- mContentRoot.setBackgroundDrawable(d);
+ backgroundView.setBackgroundDrawable(d);
}
return SUCCESS.createResult();