如何让android的actionbar浮动且透明

泡在网上的日子 / 文 发表于2013-07-13 11:02 次阅读 actionbar

enter image description here

如上图所示,谷歌地图的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对应,backgroundSplitsetSplitBackgroundDrawable对应,而backgroundStacked代表的是actionbar选项卡的背景色。

但是actionbar的背景如果设置为纯色,或者为不透明的图片,那么上面的方法无法使actionbar达到透明的效果。注意上面的代码中,我们的颜色值并不是纯色的而是有一定的透明度。#330000ff的前两位代表透明度。

收藏 赞 (1) 踩 (0)
上一篇:android的联网操作 HttpURLConnection 和 Apache HttpClient
本文介绍android中如何编写一个进行联网操作的简单应用,了我们应该遵循的其中的基本步骤,这是谷歌工程司提倡的最佳实践。 联网操作需要在应用的manifest 文件中添加如下权限: uses-permission android:name="android.permission.INTERNET" /uses-permissi
下一篇:android应用私有存储文件的写入与读取-openFileInput 和 openFileOutput
在介绍如何在Android平台下进行文件的读取之前,有必要了解Android平台下的数据存储规则。在其他的操作系统如Windows 平台下,应用程序可以自由地或者在特定的访问权限基础上访问或修改其他应用程序名下的文件等资源,而在Android平台下,一个应用程序中所有