ActionBar фоновое изображение - PullRequest
44 голосов
/ 03 мая 2011

Я унаследовал тему 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"?

Заранее спасибо

Ответы [ 5 ]

43 голосов
/ 03 мая 2011

Хорошо, благодаря Romain Guy на IRC-канале # android-dev, это известная ошибка в 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);
41 голосов
/ 07 декабря 2012
Drawable d=getResources().getDrawable(R.drawable.background_image_name);  
getActionBar().setBackgroundDrawable(d);

Приведенный выше код устанавливает фоновое изображение для панели действий.
Надеюсь, это поможет.

5 голосов
/ 31 декабря 2013

Вы можете легко сделать это.Если вы хотите изменить фоновое изображение 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>

Для этого вам нужно выбрать изображение из «рисованной» папки.Здесь я выбираю изображение «tp_black_bg.png»

После этого не забудьте объявить эту тему в вашем файле AndroidManifest.xml

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

Теперь вы можете открыть любой файл макета XML,Вы можете легко увидеть эффект.Таким же образом вы также можете изменить цвет фона ActionBar.

Спасибо.

2 голосов
/ 10 марта 2015
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
2 голосов
/ 23 января 2015

Используйте getSupportActionBar () из android.support.v7 для обратной совместимости.

...