Arrière-plan personnalisé (dégradé) de ActionBar Compat
Je suis à l'aide de la Barre d'Action Compat pour que ma barre d'action avec tiroir de navigation est compatible vers le bas à l'API de niveau 9 et je veux changer l'arrière-plan de la barre d'action.
J'ai copié le code de Les Développeurs Android:
<?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>
Et c'est là le problème.
Quand je mets une image drawable ou une couleur que l'arrière-plan, il fonctionne très bien. Cependant je tiens à définir l'arrière-plan un dégradé de forme, de sorte que mes actionbar_background
ressemble:
<?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>
Je veux qu'il soit répété de façon horizontale, mais même cela se traduit dans l'erreur, en effet, très intéressant d'erreur. Appareil de Test et même l'émulateur obtient redémarré lorsque j'essaye d'exécuter l'application. J'ai pu attraper DeadObjectException
avant de redémarrer.
Comment l'arrière-plan dessiné?
source d'informationauteur Marcel Bro | 2013-08-26
Vous devez vous connecter pour publier un commentaire.
Je suis actuellement en train de travailler sur la même tâche.
Voici mon action_bar_bg.xml fichier dans lequel je définir le gradient de ma barre d'action.
DeadObjectException
android:shape="line"
ne peut pas être utilisé si il y a un dégradé à l'intérieur. Je l'ai testé, mon Samsung Galaxy Note 10.1 N8000 redémarré, et il y avait unDeadObjectException
.La
linear
type de gradient est le par défaut valeur. Si vous n'avez pas à déclarer explicitement.Voici mon
styles.xml
dans le valeurs dossier.Gradient Drawable
Une autre approche, sans modifier
styles.xml
:Voici notre exemple de GradientDrawable dans
res/drawable/ab_gradient.xml
Vous pouvez régler la barre d'action dans votre Activité est
onCreate()
:Si vous utilisez v7 bibliothèque (votre cas):
Ou si vous utilisez ActionBarSherlock:
J'ai aussi utiliser l'exemple de code à partir de l'Android Developer et d'utiliser le gradient de XML comme le vôtre.
J'ai trouvé les différentes de ce fichier entre le tien et le mien est
android:shape="line"
/android:shape="rectangle"
.J'ai donc essayer de changer mon rectangle en ligne. Mon application se produit également la même exception, et l'OS est redémarré. Peut-être que la forme est le point clé.