显示ImageView的背后部分动作条透明(Show ImageView partly behind

2019-06-21 03:52发布

谷歌地图应用程序有一个透明的动作条,通过这些图是可见的。

我能够设置使用这种在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?

Answer 1:

您可以启用的叠加模式ActionBar 。 要做到这一点,你必须设置(android:)windowActionBarOverlay项主题,以true

<style name="MyTheme" parent="Theme.Sherlock">
    ...
    <item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock -->
    <item name="android:windowActionBarOverlay">true</item>
</style>


Answer 2:

您也可以在运行时进行设置:

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

这将在ActionBar半透明浮动条。

像任何requestWindowFeature... ,这应该是添加内容之前调用。

在之后setContentView ,你就可以设置从背景Drawable与此:

getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));

更改getActionBargetSupportActionBar为ActionBarSherlock

actionbar_bg.xml具有形状的根元素:

<solid android:color="#64000000" />

虽然我觉得Tomik的解决方案极大,这将是对于那些一次性的情况下进行的一些活动,而不是一刀切式的有用。



Answer 3:

如果有人用在他们的休息了坚实的一个需要,但只针对某些活动的透明条,它可能是值得创建两种不同的风格,并使用清单上它得到控制:

<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"
      />

...



文章来源: Show ImageView partly behind transparent ActionBar