Фоновый рисунок ActionBar

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

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

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

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

Хорошо, благодаря Romain Guy на IR-канале # android-dev, это известная ошибка на сотовой / 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); 

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

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

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

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

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

Благодарю.

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

 mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));