wake-up-neo.com

ActionBar Hintergrundbild

Ich habe das Holo Light Theme geerbt und den Hintergrund der ActionBar folgendermaßen angepasst:

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

Inhalt von 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" />

Anstatt wiederholt zu werden, wird das Bild gestreckt. Gibt es eine Idee, warum Android: tileMode = "repeat" nicht angewendet wird?

Danke im Voraus

44
rnoway

Ok, dank Romain Guy auf # Android-dev IRC channel, es ist ein bekannter Fehler in Honeycomb/Android= 3.0, der in der nächsten Version behoben wird. Seitdem ist die einzige Lösung, es aus dem Code zu machen, und es funktioniert :-)

 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);
43
rnoway
Drawable d=getResources().getDrawable(R.drawable.background_image_name);  
getActionBar().setBackgroundDrawable(d);

Der obige Code legt das Hintergrundbild für die Aktionsleiste fest.
Ich hoffe es hilft.

41
Raj Trivedi

Sie können diese Sache leicht tun. Wenn Sie das Hintergrundbild der Aktionsleiste ändern möchten, fügen Sie diesen Code in Ihre Datei res/styles.xml ein.

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

Dazu müssen Sie ein Bild aus dem Ordner "Drawable" auswählen. Hier wähle ich ein Bild "tp_black_bg.png"

Vergessen Sie danach nicht, dieses Thema in Ihrer AndroidManifest.xml-Datei zu deklarieren

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

Jetzt können Sie eine beliebige XML-Layoutdatei erneut öffnen und den Effekt sehen. Auf die gleiche Weise können Sie auch die Hintergrundfarbe von ActionBar ändern.

Vielen Dank.

5
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
2
Naskov

Verwenden Sie getSupportActionBar () aus Android.support.v7, um die Abwärtskompatibilität zu gewährleisten.

2
Ron