Sto usando Android Navigation bar
nel mio progetto, voglio cambiare il colore superiore nella barra delle azioni in qualcosa di rosso, come posso farlo? Ho qualcosa di simile
e voglio qualcosa di simile
come posso ottenerlo?
Risposte:
Puoi definire il colore della ActionBar (e altre cose) creando uno stile personalizzato :
Modifica semplicemente il file res / values / styles.xml del tuo progetto Android.
Ad esempio in questo modo:
<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>
Quindi imposta "MyCustomTheme" come tema della tua attività che contiene la ActionBar.
Puoi anche impostare un colore per la ActionBar in questo modo:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
Tratto da qui: come si cambia il colore di sfondo della ActionBar di una ActionBarActivity utilizzando XML?
setTheme(R.style.MyCustomTheme)
nel metodo onCreate della tua attività.
In generale, il sistema operativo Android utilizza un "tema" per consentire agli sviluppatori di app di applicare globalmente un set universale di parametri di stile degli elementi dell'interfaccia utente alle applicazioni Android nel loro complesso o, in alternativa, a una singola sottoclasse di attività.
Quindi ci sono tre principali "temi di sistema" del sistema operativo Android, che puoi specificare nel tuo file XML manifest di Android quando sviluppi app per la versione 3.0 e successive
Mi riferisco alla libreria di supporto (APPCOMPAT) qui: - Quindi i tre temi sono 1. AppCompat Light Theme (Theme.AppCompat.Light)
AndroidManifest.xml e guarda il tag, il tema Android è menzionato come: - android: theme = "@ style / AppTheme"
Apri Styles.xml e abbiamo il tema dell'applicazione di base dichiarato lì: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Dobbiamo sovrascrivere questi elementi del tema principale per definire lo stile della barra delle azioni.
ActionBar con sfondo di colore diverso: -
Per fare ciò dobbiamo creare un nuovo stile MyActionBar (puoi dare qualsiasi nome) con un riferimento genitore a @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse che contiene le caratteristiche di stile per l'elemento Android ActionBar UI. Quindi la definizione sarebbe
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
</style>
E questa definizione dobbiamo fare riferimento nel nostro AppTheme, indicando lo stile ActionBar sovrascritto come ...
Modificare il colore del testo della barra del titolo (ad es. Da nero a bianco): -
Ora per cambiare il colore del testo del titolo, dobbiamo sovrascrivere il riferimento principale parent = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title">
Quindi la definizione dello stile sarebbe
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Faremo riferimento a questa definizione di stile all'interno della definizione di stile MyActionBar , poiché la modifica TitleTextStyle è un elemento figlio di un elemento dell'interfaccia utente del sistema operativo padre di ActionBar. Quindi la definizione finale dell'elemento di stile MyActionBar sarà
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
Quindi questo è il file Styles.xml finale
<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>
Per ulteriori opzioni di ActionBar Stile del menu, fare riferimento a questo collegamento
Solo per Android 3.0 e versioni successive
Quando si supporta solo Android 3.0 e versioni successive, è possibile definire lo sfondo della barra delle azioni in questo modo:
res / values / themes.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>
Per Android 2.1 e versioni successive
Quando si utilizza la libreria di supporto, il file XML di stile potrebbe essere simile a questo:
<?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>
Quindi applica il tuo tema all'intera app o alle singole attività:
per maggiori dettagli Documentaion
No resource found that matches the given name '@style/Widget.Holo.Light.ActionBar.Solid.Inverse'.
modificarlo in android:style/Widget.Holo.Light.ActionBar.Solid.Inverse
risolve il problema. Grazie.
Puoi cambiare il colore della barra delle azioni in questo modo:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/green_action_bar</item>
</style>
Questo è tutto ciò di cui hai bisogno per cambiare il colore della barra delle azioni.
Inoltre, se vuoi cambiare il colore della barra di stato, aggiungi la linea:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
Ecco uno screenshot tratto dal sito Android dello sviluppatore per renderlo più chiaro, ed ecco un link per saperne di più sulla personalizzazione della tavolozza dei colori
Un'altra possibilità di fare.
actionBar.setBackgroundDrawable (new ColorDrawable (Color.parseColor ("# 0000ff")));
Colore personalizzato:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<!-- Customize your theme here. -->
</style>
Stile personalizzato:
<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>
Per di più: Android ActionBar
Come stavo usando AppCompatActivity
risposte sopra non ha funzionato per me. Ma la soluzione seguente ha funzionato:
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: ho usato colorPrimary
invece diandroid:colorPrimary
in style.xml aggiungi questo codice
<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>
Usa questo - http://jgilfelt.github.io/android-actionbarstylegenerator/
Ottimo strumento per personalizzare la barra delle azioni con un'anteprima dal vivo in un paio di minuti.