为改变 action bar的背景,可以通过为 activity 创建一个自定义主题,并重写 actionBarStyle 属性来实现。actionBarStyle 属性指向另一个样式;在该样式里,通过指定一个 drawable 资源来重写 background 属性。
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CurstomTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/myBar</item> <item name="actionBarStyle">@style/myBar</item><!--放在这里可以修改layout的颜色--> <item name="android:windowBackground">@color/layoutbackgroud</item>// </style> <style name="myBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <!-- 真正起作用的是不带‘android:’前缀的语句,是为了支持低版本的兼容包。而带前缀的语句是API 11以上支持的--> <item name="android:background">@color/mybackgroud</item> <item name="background">@color/alpha</item> <!-- <item name="android:windowBackground">@color/layoutbackgroud</item>这里添加不能修改布局颜色--> </style> <color name="alpha">#eeA</color> <color name="mybackgroud">#ff25</color> <color name="layoutbackgroud">#EEE4</color>
fang