如何让android的actionbar浮动且透明
如上图所示,谷歌地图的actionbar是透明的,且浮动在整个布局之上,没有占用布局空间。其实要做到这样的效果,我们首先想到的是两个方面:
1.将让actionbar浮动起来。
2.给actionbar一个背景,可以为颜色也可以为图片。
下面我以背景色为颜色举个例子。
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
google的actionbar是分为上下两栏显示的,上面的代码只能设置顶部actionbar的背景色,为了让下面的背景色一致,还需要添加一行代码:
actionBar.setSplitBackgroundDrawable(newColorDrawable(Color.parseColor("#330000ff")));
如果我们不想在代码中设置actionbar背景,而是在style中修改xml,可以自定义actionbar,然后设置下面三个属性:
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/ab_stacked_solid_inverse_holo</item>
<item name="android:backgroundStacked">#346c36</item>
<item name="android:backgroundSplit">@drawable/ab_stacked_solid_inverse_holo</item>
</style>
其中的background和`setBackgroundDrawable`对应,`backgroundSplit`和`setSplitBackgroundDrawable`对应,而`backgroundStacked`代表的是actionbar选项卡的背景色。
但是actionbar的背景如果设置为纯色,或者为不透明的图片,那么上面的方法无法使actionbar达到透明的效果。注意上面的代码中,我们的颜色值并不是纯色的而是有一定的透明度`。#330000ff的前两位代表透明度。`