谷歌地图应用程序有一个透明的动作条,通过这些图是可见的。
我能够设置使用这种在ActionBar的透明度:
<style name="Theme.MyTheme" parent="android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">#64000000</item>
</style>
但我怎么能显示我的动作条后面的ImageView?
您可以启用的叠加模式ActionBar
。 要做到这一点,你必须设置(android:)windowActionBarOverlay
项主题,以true
。
<style name="MyTheme" parent="Theme.Sherlock">
...
<item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock -->
<item name="android:windowActionBarOverlay">true</item>
</style>
您也可以在运行时进行设置:
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
这将在ActionBar半透明浮动条。
像任何requestWindowFeature...
,这应该是添加内容之前调用。
在之后setContentView
,你就可以设置从背景Drawable
与此:
getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));
更改getActionBar
与getSupportActionBar
为ActionBarSherlock
actionbar_bg.xml
具有形状的根元素:
<solid android:color="#64000000" />
虽然我觉得Tomik的解决方案极大,这将是对于那些一次性的情况下进行的一些活动,而不是一刀切式的有用。
如果有人用在他们的休息了坚实的一个需要,但只针对某些活动的透明条,它可能是值得创建两种不同的风格,并使用清单上它得到控制:
<style name="MyThemeOverlay" parent="Theme.Sherlock">
...
<item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock -->
<item name="android:windowActionBarOverlay">true</item>
<!-- any stuff common here, colours, etc -->
<!-- define the style for native ActionBar for Android 4 and higher -->
<item name="android:actionBarStyle">@style/myActionbarTransparent</item>
<!-- define the style for ActionBarSherlock -->
<item name="actionBarStyle">@style/myActionbarTransparent</item>
</style>
<style name="MyThemeNoOverlay" parent="MyTheme">
<item name="windowActionBarOverlay">false</item> <!-- for ActionBarSherlock -->
<item name="android:windowActionBarOverlay">false</item>
<!-- any stuff specific for no overlay activity action bars -->
<!-- define the style for native ActionBar for Android 4 and higher -->
<item name="android:actionBarStyle">@style/myActionbar</item>
<!-- define the style for ActionBarSherlock -->
<item name="actionBarStyle">@style/myActionbar</item>
</style>
<style name="myActionbar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@color/white</item>
</style>
<style name="myActionbarTransparent" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@color/transparent</item>
</style>
然后在你的AndroidManifest.xml
您可以使用其中一个作为默认值,另一个用于通过执行类似的一些具体活动:
<application
...
android:theme="@style/MyThemeOverlay">
...
<activity
android:name=".Activity1"
/>
<activity
android:name=".Activity2"
android:theme="@style/MyThemeNoOverlay"
/>
<activity
android:name=".Activity3"
/>
<activity
android:name=".Activity4"
android:theme="@style/MyThemeNoOverlay"
/>
...