Estou usando Android Navigation bar
no meu projeto, quero mudar a cor superior da barra de ação para algo vermelho. Como posso fazer isso? Eu tenho algo assim,
e eu quero algo assim,
como posso conseguir isso?
Respostas:
Você pode definir a cor da ActionBar (e outras coisas) criando um estilo personalizado :
Basta editar res / values / styles.xml arquivo do seu projeto Android.
Por exemplo, assim:
<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>
Em seguida, defina "MyCustomTheme" como o tema de sua atividade que contém a ActionBar.
Você também pode definir uma cor para a ActionBar como esta:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
Retirado daqui: Como altero a cor de fundo da ActionBar de uma ActionBarActivity usando XML?
setTheme(R.style.MyCustomTheme)
no método onCreate de sua atividade.
Em geral, o sistema operacional Android aproveita um “tema” para permitir que os desenvolvedores de aplicativos apliquem globalmente um conjunto universal de parâmetros de estilo do elemento da IU aos aplicativos Android como um todo ou, alternativamente, a uma única subclasse de Activity.
Portanto, há três "temas de sistema" do sistema operacional Android principal, que você pode especificar em seu arquivo XML de manifesto do Android ao desenvolver aplicativos para a versão 3.0 e versões posteriores
Estou me referindo à biblioteca de suporte (APPCOMPAT) aqui: - Então, os três temas são 1. AppCompat Light Theme (Theme.AppCompat.Light)
AndroidManifest.xml e veja a tag, o tema android é mencionado como: - android: theme = "@ style / AppTheme"
Abra o Styles.xml e temos o tema do aplicativo base declarado lá: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Precisamos substituir esses elementos do tema pai para estilizar a barra de ação.
ActionBar com fundo de cor diferente: -
Para fazer isso, precisamos criar um novo estilo MyActionBar (você pode dar qualquer nome) com uma referência pai a @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse que contém as características de estilo para o elemento Android ActionBar UI. Portanto, a definição seria
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
</style>
E essa definição precisamos fazer referência em nosso AppTheme, apontando para o estilo da ActionBar substituído como -
Altere a cor do texto da barra de título (por exemplo, preto para branco): -
Agora, para alterar a cor do texto do título, precisamos substituir a referência pai parent = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title">
Portanto, a definição de estilo seria
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Faremos referência a essa definição de estilo dentro da definição de estilo MyActionBar , uma vez que a modificação TitleTextStyle é um elemento filho de um elemento de interface do usuário do SO pai da ActionBar. Portanto, a definição final do elemento de estilo MyActionBar será
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
ASSIM, este é o Styles.xml final
<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>
Para mais opções de estilo de menu da ActionBar, consulte este link
Apenas para Android 3.0 e superior
Ao oferecer suporte ao Android 3.0 e superior apenas, você pode definir o plano de fundo da barra de ação assim:
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>
Para Android 2.1 e superior
Ao usar a Biblioteca de Suporte, seu arquivo XML de estilo pode ter a seguinte aparência:
<?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>
Em seguida, aplique seu tema a todo o seu aplicativo ou atividades individuais:
para mais detalhes Documentação
No resource found that matches the given name '@style/Widget.Holo.Light.ActionBar.Solid.Inverse'.
alterá-lo para android:style/Widget.Holo.Light.ActionBar.Solid.Inverse
resolve o problema. Obrigado.
Você pode alterar a cor da barra de ação desta forma:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/green_action_bar</item>
</style>
Isso é tudo que você precisa para mudar a cor da barra de ação.
Além disso, se você quiser alterar a cor da barra de status, basta adicionar a linha:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
Aqui está uma captura de tela tirada do site do desenvolvedor Android para torná-lo mais claro, e aqui está um link para ler mais sobre como personalizar a paleta de cores
Outra possibilidade de fazer.
actionBar.setBackgroundDrawable (new ColorDrawable (Color.parseColor ("# 0000ff")));
Cor customizada:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<!-- Customize your theme here. -->
</style>
Estilo personalizado:
<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>
Para mais: Android ActionBar
Como eu estava usando as AppCompatActivity
respostas acima, não funcionou para mim. Mas a solução abaixo funcionou:
Em 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: Eu usei em colorPrimary
vez deandroid:colorPrimary
no style.xml adicione este código
<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>
Use isto - http://jgilfelt.github.io/android-actionbarstylegenerator/
Boa ferramenta para personalizar sua barra de ação com uma visualização ao vivo em alguns minutos.