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));