我继承了Holo Light主题,并使用以下内容自定义了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 =“repeat”没有被应用?
提前致谢
答案 0 :(得分:43)
好的,感谢Romain Guy在#android-dev IRC频道上,它是关于蜂窝/ Android 3.0的已知错误,将在下一个版本中修复。从那时起,唯一的解决方案是从代码中完成它,并且它可以工作: - )
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);
答案 1 :(得分:41)
Drawable d=getResources().getDrawable(R.drawable.background_image_name);
getActionBar().setBackgroundDrawable(d);
以上代码设置操作栏的背景图像 希望它有所帮助。
答案 2 :(得分:5)
你可以轻松做到这一点。如果要更改操作栏背景图像,则将此代码放入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>
为此,您必须从“drawable”文件夹中选择一个图像。在这里,我选择一个图像“tp_black_bg.png”
之后不要忘记将此主题声明为AndroidManifest.xml文件
<application
.
.
.
android:theme="@style/Theme.MyAppTheme" >.............</application>
现在您可以重新打开任何XML布局文件,您可以轻松查看效果。以同样的方式,您还可以更改ActionBar的背景颜色。
感谢。
答案 3 :(得分:2)
使用android.support.v7中的getSupportActionBar()来实现向后兼容性。
答案 4 :(得分:2)
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));