Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cambiar la barra de acción en color

No puedo averiguar cómo cambiar los elementos de la barra de acción "onPressed" en Android. No estoy hablando del color de fondo de la barra de acción pero sobre el estado azul sobre. ¿Cómo puedo cambiar el color de esto o al menos deshacerme de él? Por ejemplo, el icono de la aplicación con el homeAsUpIndicator.

Intenté cambiar el estilo de la barra de la acción y también el estilo del artículo del menú pero nada trabajó.

Gracias

EDIT Aquí está mi implementación hasta ahora:

Mi estilo xml:

<style name="Theme.AppTheme" parent="@android:style/Theme.Holo"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:selectableItemBackground">@android:color/transparent</item> <item name="android:windowEnterAnimation">@anim/fadein</item> <item name="android:windowExitAnimation">@anim/fadeout</item> <item name="android:actionBarItemBackground">@android:color/transparent</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@drawable/actionbarheader</item> <item name="android:backgroundStacked">@drawable/actionbarheader</item> <item name="android:backgroundSplit">@drawable/actionbarheader</item> <item name="android:titleTextStyle">@style/ActionBarTitle</item> <item name="android:actionBarItemBackground">@android:color/transparent</item> <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item> <item name="android:homeAsUpIndicator">@drawable/actionbarlogo</item> <item name="android:icon">@drawable/app_icon</item>> </style> <style name="ActionBarTitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textSize">20sp</item> </style> <style name="MyActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton"> <item name="android:background">@android:color/transparent</item> </style> 

Entonces tengo un dibujable para el actionbarogo:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/actionbarlogo_on" android:state_pressed="true"/> <item android:drawable="@drawable/actionbarlogo_on" android:state_focused="true"/> <item android:drawable="@drawable/actionbarlogo_off"/> </selector> 

Mi menú xml para los elementos de la barra de acción:

 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/ContactsMode" android:icon="@drawable/actionbarcontacts" android:title="@string/contacts" android:orderInCategory="100" android:showAsAction="always" android:background="@android:color/transparent" /> </menu> 

Y finalmente, el artículo es dibujable:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/actionbarcontacts_on" android:state_pressed="true"/> <item android:drawable="@drawable/actionbarcontacts_on" android:state_focused="true"/> <item android:drawable="@drawable/actionbarcontacts_off"/> </selector> 

Aquí es cómo creo los elementos de menú para el ActionBar:

 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); actionBar.setIcon(R.drawable.actionbarlogo); return true; } public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item= menu.findItem(R.id.ContactsMode); if(ContactsButton) item.setVisible(true); else item.setVisible(false); return true; } 

  • Cómo utilizar SearchView en la barra de herramientas de Android
  • Cómo cambiar el color de la pestaña seleccionada
  • Android cómo diseñar un SearchView en Actionbar?
  • Configuración ActionMode Background programmatically
  • ¿Cómo puedo cambiar las acciones de Action Bar de forma dinámica?
  • Barra de acción de Android - quitar dinámicamente la barra de acción
  • Android Studio "no puede resolove el símbolo 'Tema'"
  • Modo de acción cerrar el color del texto del botón
  • 2 Solutions collect form web for “Cambiar la barra de acción en color”

    Para establecer el fondo para el icono de la aplicación junto con el homeAsUpIndicator (hay un fondo común para estos dos iconos) tienes que configurar android:actionBarItemBackground elemento en el tema. El tema tiene que contener algo como esto (supongo que se utiliza ActionBarSherlock ):

     <style name="MyTheme" parent="@style/Theme.Sherlock"> <!-- for ActionBarSherlock --> <item name="actionBarItemBackground">@drawable/my_background</item> <!-- for native ActionBar --> <item name="android:actionBarItemBackground">@drawable/my_background</item> </style> 

    Donde el drawable/my_background.xml sería un StaleListDrawable , que contiene algo como esto:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/my_background_pressed" /> <item android:drawable="@drawable/my_background_normal" /> </selector> 

    Para desactivar completamente el fondo, puede establecer un fondo transparente, o el valor @null en el tema también podría funcionar.

    El tema del tema android:actionBarItemBackground establece el fondo para el icono de la aplicación y homeAsUpIndicator. Pero también establece el fondo predeterminado para los elementos del menú, el icono de desbordamiento y el fondo para el título . Estos fondos pueden ser anulados.

    Elementos de menú

    Para cambiar el fondo del elemento de menú, establezca un (android:)actionButtonStyle apropiado (android:)actionButtonStyle en el tema como este:

     <style name="MyTheme" parent="@style/Theme.Sherlock"> <item name="actionButtonStyle">@style/MyActionButtonStyle</item> <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item> </style> 

    Y MyActionButtonStyle contendrá algo como esto:

     <style name="MyActionButtonStyle" parent="@style/Widget.Sherlock.ActionButton"> <item name="android:background">@drawable/my_background</item> </style> 

    Icono de desbordamiento

    Y, por último, para cambiar el fondo del icono de desbordamiento establecer un android:actionOverflowButtonStyle adecuado android:actionOverflowButtonStyle en el tema como este:

     <style name="MyTheme" parent="@style/Theme.Sherlock"> <item name="actionOverflowButtonStyle">@style/MyOverflowButtonStyle</item> <item name="android:actionOverflowButtonStyle">@style/MyOverflowButtonStyle</item> </style> 

    Y MyOverflowButtonStyle contendrá algo como esto:

     <style name="MyOverflowButtonStyle" parent="@style/Widget.Sherlock.ActionButton.Overflow"> <item name="android:background">@drawable/my_background</item> </style> 

    Arreglado. Hubo una actividad de padres que cambiaba el tema en el método onCreate …

    No sabía que usted podría fijar el tema programmatically dentro de la actividad con:

     setTheme(R.style.MyTheme); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.