Custom (gradient) hintergrund der ActionBar-Compat
Bin ich über die Aktion Bar Compat so, dass mein action-bar-navigation Schublade war abwärtskompatibel nach unten zu API level 9 und ich will den hintergrund ändern, der action-bar.
Kopierte ich den code aus Android-Entwickler:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
</resources>
Und hier kommt das problem.
Wenn ich ein image drawable oder eine Farbe als hintergrund, es funktioniert gut. Allerdings möchte ich definieren den hintergrund als Farbverlauf der Form, so meine actionbar_background
aussieht:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<gradient
android:startColor="@color/ac_bg_start"
android:endColor="@color/ac_bg_end"
android:type="linear"/>
<size
android:width="1dp"
android:height="48dp"/>
</shape>
Ich soll es wiederholt werden, in horizontaler Weise, aber auch dies führt zu Fehler, in der Tat, sehr interessanter Fehler. Test-Gerät und auch der emulator wird gestartet, wenn ich versuche, die app auszuführen. Ich war in der Lage zu fangen DeadObjectException
vor dem Neustart.
Wie sollte der hintergrund drawable Aussehen?
InformationsquelleAutor Marcel Bro | 2013-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich arbeite gerade an der gleichen Aufgabe.
Hier ist mein action_bar_bg.xml - Datei, in der ich definieren die Steigung für meine action bar.
DeadObjectException
android:shape="line"
können nicht verwendet werden, wenn es einen Farbverlauf von innen. Getestet habe ich es, mein Samsung Galaxy Note 10.1 N8000 neu gestartet, und es war einDeadObjectException
.Den
linear
Farbverlauf-Muster ist die Standard Wert. So brauchen Sie sich nicht zu erklären, ihn explizit.Hier ist mein
styles.xml
im Werte Ordner.Verlauf Drawable
Dies funktioniert, obwohl ich nicht verstehen, die DeadObjectException Teil, Wann wird ein Gerät bekommen, dass die Ausnahme?
InformationsquelleAutor Maksim Dmitriev
Anderen Ansatz, ohne änderung
styles.xml
:Hier ist unser Beispiel GradientDrawable in
res/drawable/ab_gradient.xml
Können Sie es auf die Aktionsleiste in Ihre Tätigkeit
onCreate()
:Wenn Sie support v7 library (dein Fall):
Ist oder wenn Sie mit ActionBarSherlock:
ist jetzt veraltet. Was ist der neue code zu ersetzen veraltete Methode?
überprüfen Sie diese gute Antwort: stackoverflow.com/questions/29041027/...
InformationsquelleAutor Max77
Benutze ich auch, der Beispiel-code aus dem Android-Entwickler und verwenden den Gradienten von XML als wie die deine.
Fand ich die verschiedenen in dieser Datei zwischen dir und mir ist
android:shape="line"
/android:shape="rectangle"
.Also versuche ich mein Rechteck, Linie. Meine app kommt auch die gleiche Ausnahme und das OS neu gestartet wird. Vielleicht die Form ist der entscheidende Punkt.
InformationsquelleAutor OsterHuang