Antworten:
Sie können die Farbe der ActionBar (und anderer Elemente) definieren, indem Sie einen benutzerdefinierten Stil erstellen :
Bearbeiten Sie einfach die Datei res / values / styles.xml Ihres Android-Projekts.
Zum Beispiel so:
<resources>
<style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">ANY_HEX_COLOR_CODE</item>
</style>
</resources>
Legen Sie dann "MyCustomTheme" als Thema Ihrer Aktivität fest, das die Aktionsleiste enthält.
Sie können auch eine Farbe für die ActionBar festlegen:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
Von hier aus: Wie ändere ich die Hintergrundfarbe der ActionBar einer ActionBarActivity mithilfe von XML?
setTheme(R.style.MyCustomTheme)
in der onCreate-Methode Ihrer Aktivität.
Im Allgemeinen nutzt das Android-Betriebssystem ein „Thema“, damit App-Entwickler einen universellen Satz von UI-Element-Styling-Parametern global auf Android-Anwendungen als Ganzes oder alternativ auf eine einzelne Aktivitäts-Unterklasse anwenden können.
Daher gibt es drei gängige Android-Betriebssystem-Systemthemen, die Sie in Ihrer Android Manifest XML-Datei angeben können, wenn Sie Apps für Version 3.0 und spätere Versionen entwickeln
Ich beziehe mich hier auf die Support-Bibliothek (APPCOMPAT): - Die drei Themen sind also 1. AppCompat Light Theme (Theme.AppCompat.Light)
AndroidManifest.xml und sehen Sie das Tag, das Android-Thema wird erwähnt als: - android: theme = "@ style / AppTheme"
Öffnen Sie die Datei Styles.xml und wir haben dort das Basisanwendungsthema deklariert: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Wir müssen diese übergeordneten Themenelemente überschreiben, um die Aktionsleiste zu gestalten.
ActionBar mit unterschiedlichem Hintergrund: -
Dazu müssen wir einen neuen Stil MyActionBar (Sie können einen beliebigen Namen angeben) mit einem übergeordneten Verweis auf @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse erstellen , der die Stileigenschaften für das Android ActionBar-UI-Element enthält. So wäre die Definition
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
</style>
Und auf diese Definition müssen wir in unserem AppTheme verweisen und auf das überschriebene ActionBar-Styling als-- verweisen.
Ändern Sie die Textfarbe der Titelleiste (z. B. Schwarz zu Weiß): -
Um nun die Titeltextfarbe zu ändern, müssen wir die übergeordnete Referenz parent = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title"> überschreiben
Die Stildefinition wäre also
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Wir werden diese Stildefinition in der MyActionBar-Stildefinition referenzieren , da die TitleTextStyle-Änderung ein untergeordnetes Element eines übergeordneten ActionBar-Betriebssystem-UI-Elements ist. Die endgültige Definition des MyActionBar-Stilelements lautet also
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
SO ist dies die endgültige Styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- This is the styling for action bar -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
</resources>
Weitere Informationen zum Menüstil der ActionBar-Optionen finden Sie unter diesem Link
Nur für Android 3.0 und höher
Wenn Sie nur Android 3.0 und höher unterstützen, können Sie den Hintergrund der Aktionsleiste folgendermaßen definieren:
res / values / theme.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#ff0000</item>
</style>
</resources>
Für Android 2.1 und höher
Wenn Sie die Support-Bibliothek verwenden, sieht Ihre XML-Stildatei möglicherweise folgendermaßen aus:
<?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>
Wenden Sie dann Ihr Thema auf Ihre gesamte App oder einzelne Aktivitäten an:
Weitere Details Documentaion
No resource found that matches the given name '@style/Widget.Holo.Light.ActionBar.Solid.Inverse'.
Ändern, um android:style/Widget.Holo.Light.ActionBar.Solid.Inverse
das Problem zu lösen. Vielen Dank.
Sie können die Farbe der Aktionsleiste folgendermaßen ändern:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/green_action_bar</item>
</style>
Das ist alles, was Sie zum Ändern der Farbe der Aktionsleiste benötigen.
Wenn Sie die Farbe der Statusleiste ändern möchten, fügen Sie einfach die folgende Zeile hinzu:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
Hier ist ein Screenshot von der Entwickler-Android-Site, um es klarer zu machen, und hier ist ein Link , um mehr über das Anpassen der Farbpalette zu erfahren
Eine andere Möglichkeit zu machen.
actionBar.setBackgroundDrawable (neues ColorDrawable (Color.parseColor ("# 0000ff")));
Freiwählbare Farbe:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<!-- Customize your theme here. -->
</style>
Benutzerdefinierter Stil:
<style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light">
<item name="android:selectableItemBackground">@drawable/ad_selectable_background</item>
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>
</style>
Für mehr: Android ActionBar
Da ich die AppCompatActivity
obigen Antworten verwendet habe, hat es bei mir nicht funktioniert. Aber die folgende Lösung hat funktioniert:
In res / styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
</style>
PS: Ich habe colorPrimary
statt verwendetandroid:colorPrimary
Fügen Sie in der Datei style.xml diesen Code hinzu
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyAction</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#333333</item>
</style>
</resources>
Verwenden Sie dies - http://jgilfelt.github.io/android-actionbarstylegenerator/
Gutes Tool, um Ihre Aktionsleiste mit einer Live-Vorschau in wenigen Minuten anzupassen.