ActionBar背景图片
我inheritance了Holo Light Theme,并用以下方法定制了ActionBar的背景:
styles.xml的内容
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/actionbar_background</item> </style> <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBar</item> </style> </resources>
actionbar_background.xml的内容
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@raw/actionbar_background" android:tileMode="repeat" />
而不是重复,图像被拉伸,为什么android:tileMode =“重复”没有应用的任何想法?
提前致谢
Drawable d=getResources().getDrawable(R.drawable.background_image_name); getActionBar().setBackgroundDrawable(d);
上面的代码设置了操作栏的背景图像。
希望能帮助到你。
好的,感谢Romain Guy在#android-dev IRC频道,这是蜂窝/ Android 3.0上的一个已知的bug,它将在下一个版本中得到修复。 从那以后,唯一的解决方法就是从代码中做到这一点,它的工作原理是:-)
final ActionBar actionBar = getActionBar(); BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.raw.actionbar_background)); background.setTileModeX(android.graphics.Shader.TileMode.REPEAT); actionBar.setBackgroundDrawable(background);
你可以轻松地做这件事情。 如果你想改变Action Bar背景图片,那么你把这个代码放到你的res / styles.xml文件中。
<style name="Theme.MyAppTheme" parent="@android:style/Theme.Holo"> <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> </style> <style name="Theme.MyAppTheme.ActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/top_black_bg</item> </style>
为此,您必须从“可绘制”文件夹中select一个图像。 在这里我select一个图像“tp_black_bg.png”
之后,不要忘记把这个主题声明给你的AndroidManifest.xml文件
<application . . . android:theme="@style/Theme.MyAppTheme" >.............</application>
现在你可以重新打开任何XML布局文件,你可以很容易地看到效果。 以同样的方式,你也可以改变ActionBar的背景颜色。
谢谢。
使用android.support.v7中的getSupportActionBar()来实现向后兼容。
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));