Cuando ur están inflando la llamada menú de esta setMenuBackground método()
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu,menu);
setMenuBackground();
return true;
}
y escribir esto en el método setMenuBackground()
protected void setMenuBackground(){
// Log.d(TAG, "Enterting setMenuBackGround");
getLayoutInflater().setFactory(new Factory() {
public View onCreateView(String name, Context context, AttributeSet attrs) {
if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
try { // Ask our inflater to create the view
LayoutInflater f = getLayoutInflater();
final View view = f.createView(name, null, attrs);
/* The background gets refreshed each time a new item is added the options menu.
* So each time Android applies the default background we need to set our own
* background. This is done using a thread giving the background change as runnable
* object */
new Handler().post(new Runnable() {
public void run() {
// sets the background color
view.setBackgroundResource(R.color.androidcolor);
// sets the text color
((TextView) view).setTextColor(Color.BLACK);
// sets the text size
((TextView) view).setTextSize(18);
}
});
return view;
}
catch (InflateException e) {}
catch (ClassNotFoundException e) {}
}
return null;
}});
}
Si alguien está interesado he resuelto. http://pastebin.com/1QHGTMUW simplemente llame al setMenuBackground en el onCreate – rciovati
Así es como obtuve el color de fondo del menú personalizado de Action Bar trabajando en Android 4.0+: http://stackoverflow.com/a/20077381/56285 – Jonik
intento Usted codifica, pero primero me dice que elimine @Override y luego nada se abre. Traté de cambiar el color de fondo del menú. – Kenji