diff options
author | Xavier Ducrohet <xav@android.com> | 2011-02-08 11:03:43 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-08 11:03:43 -0800 |
commit | dc3fc3dc2717461113a2963c224cb190457599d8 (patch) | |
tree | 967cdffd9c23ad651796a4a2f1034b1e4a98224d /tools | |
parent | c7bece13495949db1736263a7cf5cf67c6165c51 (diff) | |
parent | abc33e014d4490dc993d1453e2589f538dbd7bbe (diff) | |
download | frameworks_base-dc3fc3dc2717461113a2963c224cb190457599d8.zip frameworks_base-dc3fc3dc2717461113a2963c224cb190457599d8.tar.gz frameworks_base-dc3fc3dc2717461113a2963c224cb190457599d8.tar.bz2 |
Merge "LayoutLib: fix the background of title/action bars." into honeycomb
Diffstat (limited to 'tools')
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(); |