actionbar - change text color action bar android
¿Cómo cambio el color de fondo de la barra de acción de una ActionBarActivity utilizando XML? (16)
El comportamiento de Actionbar también se puede cambiar en las API <11
Ver la documentación oficial de Android para referencia
Estoy creando una aplicación con minSdkVersion = "9"
y targetSdkVersion = "21"
Cambié el color de la barra de acción y funciona bien con el nivel de API 9
Aquí hay un xml.
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.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">@color/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
</style>
</resources>
y establece el color de la barra de acción que quieras
res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="actionbar_background">#fff</color> //write the color you want here
</resources>
El color de la barra de acción también se puede definir en el archivo .class
, el fragmento es
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));
pero esto no funcionará con la API <11 , por lo que diseñar la barra de acción en xml
es solo una forma de API <11
Detalles:
Estoy extendiendo ActionBarActivity.
Eclipse y SDK totalmente parcheados a partir de 2011-11-06.
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />
Implementado en dispositivo Samsung con Android 2.3.3
La aplicación tiene android:theme="@android:style/Theme.Light"
Problema: la aplicación es ligera, pero la barra de acción es azul con iconos grises, apenas visible contra el color de fondo azul. También quiero que la barra de acción sea ligera, para que los iconos grises sean más visibles.
He intentado modificar los estilos pero en vano.
Probablemente me esté faltando algo trivial.
¿Cómo cambio el color de fondo de la barra de acción de una ActionBarActivity utilizando XML?
Cuando extiendes la actividad usa el siguiente código
ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
Cuando extiendes AppCompatActivity utiliza el siguiente Código
ActionBar actionbar = getSupportActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
Así es como puedes cambiar el color de la barra de acción.
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
public class ActivityUtils {
public static void setActionBarColor(AppCompatActivity appCompatActivity, int colorId){
ActionBar actionBar = appCompatActivity.getSupportActionBar();
ColorDrawable colorDrawable = new ColorDrawable(getColor(appCompatActivity, colorId));
actionBar.setBackgroundDrawable(colorDrawable);
}
public static final int getColor(Context context, int id) {
final int version = Build.VERSION.SDK_INT;
if (version >= 23) {
return ContextCompat.getColor(context, id);
} else {
return context.getResources().getColor(id);
}
}
}
Desde tu MainActivity.java cambia el color de la barra de acción como este
ActivityUtils.setActionBarColor(this, R.color.green_00c1c1);
Directamente añade esta línea con tu código de color.
getSupportActionBar().setBackgroundDrawable(
new ColorDrawable(Color.parseColor("#5e9c00")));
No es necesario crear objetos ActionBar cada vez que ...
En el Nexus 4 personas esto parece hacer que el color se vuelva gris.
ActionBar bar = getActionBar(); // or MainActivity.getInstance().getActionBar()
bar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
bar.setDisplayShowTitleEnabled(false); // required to force redraw, without, gray color
bar.setDisplayShowTitleEnabled(true);
(todo el crédito a esta publicación, pero está enterrado en los comentarios, así que quería ponerlo a la vista aquí) https://.com/a/17198657/1022454
Este código puede ser útil
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- customize the color palette -->
<item name="colorPrimary">@color/material_blue_500</item>
<item name="colorPrimaryDark">@color/material_blue_700</item>
<item name="colorAccent">@color/material_blue_500</item>
<item name="colorControlNormal">@color/black</item>
</style>
<style name="CardViewStyle" parent="CardView.Light">
<item name="android:state_pressed">@color/material_blue_700</item>
<item name="android:state_focused">@color/material_blue_700</item>
<!--<item name="android:background">?android:attr/selectableItemBackground</item>-->
</style>
Prueba esto
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));
Según la documentation : "Puede controlar los comportamientos y la visibilidad de la barra de acción con las API de ActionBar, que se agregaron en Android 3.0 (nivel de API 11)".
Por lo tanto, ActionBar no funcionará para su entorno objetivo que se encuentra en el nivel 10 de API (Android 2.3.3).
Por si acaso, si apuntas al nivel mínimo de API 11, puedes cambiar el color de fondo de ActionBar definiendo el estilo personalizado, como:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">ANY_HEX_COLOR_CODE</item>
</style>
</resources>
Y, establezca "MyTheme" como tema para la aplicación / actividad.
Tuve el mismo problema, donde mi barra de acción se volvería gris cuando ingresara ese código. Lo más probable es que su hoja de estilo original se vea así:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
El "DarkActionBar" era lo que mantenía gris tu barra de acción. Esto lo cambié, y funcionó:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#2aa4cd</item>
<item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#FFFFFF</item>
</style>
También eché un vistazo a cómo editar el color del texto. Además, no hay necesidad de cambiar nada en torno a los recursos.
-Madriguera
Usa esto, funcionaría.
ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
Use el código de abajo para proporcionar un color diferente al texto de la barra de acción y el fondo de la barra de acción, solo use el tema debajo del manifiesto en la actividad en la que desea la producción :)
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/TitleBarTextColor</item>
<item name="android:background">YOUR_COLOR_CODE</item>
</style>
<style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">YOUR_COLOR_CODE</item>
</style>
Use esto - http://jgilfelt.github.io/android-actionbarstylegenerator/
Es una herramienta increíble que te permite personalizar tu barra de acción con una vista previa en vivo.
Probé las respuestas anteriores, pero siempre tuve problemas para cambiar otros colores, como las pestañas y las letras, y pasé horas ajustando cosas. Esta herramienta me ayudó a hacer mi diseño en solo un par de minutos.
¡Todo lo mejor! :)
Utilice este código ... para cambiar el color de fondo de la barra de acción. abra "res / values / themes.xml" (si no está presente, créelo) y añada
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
</style>
Nota: este código funciona solo para Android 3.0 y versiones superiores
intente un código de línea:
getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.MainColor)));
prueba esto:
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));
getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.TabColor)));
archivo color.xml:
<resources> <color name="TabColor">#11FF00</color> </resources>`