Cómo cambiar el color de fondo de ActionMode en Android

Estoy creando una aplicación para Android en la que api del nivel de soporte es 7, así que estoy usando la barra de acciones sherlock. Estoy usando el modo de acción en él. El problema es que quiero cambiar el fondo del modo de acción. Así que lo he intentado

@color/something @color/something @color/something 

estas soluciones de estilo están disponibles, pero ninguna de ellas funciona. http://sofes.miximages.com/android/2nriic1.png

si quieres cambiar el color de ActionBar solo haz esto:

  ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable("COLOR")); 

vea el siguiente enlace para más información

y si usa ActionMode Este es el estilo utilizado para cualquier ActionMode. Tendrás que crear tu propio estilo para personalizarlo

  

más información en este sitio

ver esto también

Editar

para pre-Honeycomb ver esto por favor

tal vez esto o esto te ayudó

En mi caso, resolví con esto. Primero creé un estilo para definir el actionModeBackground:

  

Luego agrego el estilo en mi tema de aplicación base:

  

¡¡¡Espero eso ayude!!!

Si está utilizando una barra de acción simple, intente esto,

 ActionBar abar = getActionBar(); abar.setBackgroundDrawable(new ColorDrawable(0xff123456)); 

Pero si está utilizando Actionbar share lock Lib entonces intente esto

 getSupportActionBar().setBackgroundDrawable(new ColorDrawable(0xff123456)); 

ColorDrawable(0xff123456) – debería ser su código de color.

Drawable / styles.xml

  @drawable/actionbar_background @drawable/actionbar_background 

Cambiar tema según el nivel de API

Si quieres cambiar según el nivel de API, entonces deberías ir por esto

Si desea hacerlo de forma programática (compatible con AppCompat), debe buscar la vista principal de icono. Este código se prueba de 2.3.7 a 6.0.1. Necesitas verificar en una API más baja …

primero obtén tu decoración de actividad

 final ViewGroup decorView = (ViewGroup) getActivity().getWindow().getDecorView(); 

segundo establece el color en onPrepareActionMode. También puede configurar el ícono Atrás u otros elementos aquí

 @Override public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { decorView.postDelayed(new Runnable() { @Override public void run() { int buttonId = getResources().getIdentifier("action_mode_close_button", "id", "android"); View v = decorView.findViewById(buttonId); if (v == null) { buttonId = R.id.action_mode_close_button; v = decorView.findViewById(buttonId); } if (v != null) { ((View)v.getParent()).setBackgroundColor(Color.red /*your color here*/); } } }, 500);} 

Reemplace este estilo en su tema personalizado:

  

Por ejemplo:

   

Este es el estilo utilizado para cualquier ActionMode, lo extraje del SDK. Tendrá que crear su propio estilo para personalizarlo. Es realmente fácil de hacer. Si nunca antes has hecho algo como esto, deberías leer esta publicación sobre cómo personalizar la barra de acciones. Explica todo lo que necesitarás saber.

  

La forma más simple de hacerlo

 ActionBarContextView actionBar = getWindow().getDecorView().findViewById(R.id.action_mode_bar); actionBar.setBackgroundColor(WhateverColorYouWant); 

Quiero aclarar más esta respuesta. Primero crea un fondo personalizado “storage_list_header_shape.xml” en tu carpeta dibujable.

      

En segundo lugar, crea un estilo personalizado en tu style.xml

  

En tercer lugar, llame al estilo en su manifiesto.

   

Para aquellos que todavía luchan, y ninguna de las soluciones existentes ayuda, asegúrese de que en su diseño con la barra de herramientas tenga esto:

 app:popupTheme="@style/Theme.ToolBar" android:popupTheme="@style/Theme.ToolBar" 

y no tienes

 app:theme="@style/Theme.ToolBar" 

Dado que se levantarán un conflicto y su personalización no funcionará.