I have used the following code to customize the background of options menu successfully.
getLayoutInflater().setFactory(new Factory() {
@Override
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() {
view.setBackgroundResource(R.drawable.blue_bg_pixel);
}
});
return view;
}
catch (InflateException e) {
}
catch (ClassNotFoundException e) {
}
}
return null;
}
});
Now I have to customize menu size, text size/color. Anybody plz help me in this.
Thanks in advance.
This fails on Android 2.3
See http://code.google.com/p/android/issues/detail?id=4441#c6 and Change menu background color on android 2.3
for details