Фоновый рисунок 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" не применяется?
Заранее спасибо
Ответы
Ответ 1
Хорошо, благодаря 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);
Ответ 2
Drawable d=getResources().getDrawable(R.drawable.background_image_name);
getActionBar().setBackgroundDrawable(d);
Приведенный выше код устанавливает фоновое изображение для панели действий.
Надеюсь, что это поможет.
Ответ 3
Вы можете легко сделать это. Если вы хотите изменить фоновое изображение 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.
Спасибо.
Ответ 4
Использовать getSupportActionBar() из android.support.v7 для обратной совместимости.
Ответ 5
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));