操作栏背景图片

发布于 2024-11-04 19:27:50 字数 835 浏览 5 评论 0原文

我继承了 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"没有应用?

提前致谢

I've inherited the Holo Light Theme and customized the background of the ActionBar with the following:

Content of 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>

Content of 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" />

Instead of being repeated, the image is stretched, any idea of why android:tileMode="repeat" is not applied?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

浅沫记忆 2024-11-11 19:27:50
Drawable d=getResources().getDrawable(R.drawable.background_image_name);  
getActionBar().setBackgroundDrawable(d);

上面的代码设置了操作栏的背景图像。
希望有帮助。

Drawable d=getResources().getDrawable(R.drawable.background_image_name);  
getActionBar().setBackgroundDrawable(d);

The above code sets the background image for the action bar.
Hope it helps.

冷夜 2024-11-11 19:27:50

好的,感谢 #android-dev IRC 频道上的 Romain Guy,这是 honeycomb / 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);

Ok, thanks to Romain Guy on #android-dev IRC channel, it's a known bug on honeycomb / Android 3.0 which will be fixed on the next release. Since then, the only solution is do it from code, and it works :-)

 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);
烟织青萝梦 2024-11-11 19:27:50

你可以轻松地做到这件事。如果您想更改操作栏背景图像,请将此代码放入 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 的背景颜色。

谢谢。

You can easily do this thing. If you would like to change Action Bar background image then you place this code to your res/styles.xml file.

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

For this you have to select an image from "drawable" folder . Here I select an image "tp_black_bg.png"

After that don't forget to declare this theme to your AndroidManifest.xml file

    <application
        .
        .
        .
        android:theme="@style/Theme.MyAppTheme" >.............</application>

Now you can reopen any XML layout file , you can easily see the effect. In the same way you can also able to change the background color of ActionBar.

Thanks.

2024-11-11 19:27:50
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
維他命╮ 2024-11-11 19:27:50

使用 android.support.v7 中的 getSupportActionBar() 实现向后兼容性。

Use getSupportActionBar() from android.support.v7 for backward compatability.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文