参考
http://topic.csdn.net/u/20100730/09/0800bfa2-8f10-4a43-9c67-500faa9e1d9b.html
menu中每项都是xml中定义出来的。
可以添加
    <item android:id="@+id/happy"
        android:title="Happy"
        android:icon="@drawable/stat_happy" />

解决方案 »

  1.   

    1楼说的对,不过我想要做的是要把menu背景颜色自己定义一下,就是不知道怎么做?
      

  2.   

    ....  <item android:id="@+id/happy"
      android:title="Happy"
      android:icon="@drawable/stat_happy"
      android:background="#66FFFFFF"/>
    background就是颜色
      

  3.   

    这样可以实现自定义背景,但是聚焦时颜色也不改变了!有点郁闷…… /* 
         *The Options Menu (the one that pops up on pressing the menu button on the emulator) 
         * can be customized to change the background of the menu 
       */     package com.pop.menu;    import android.app.Activity;
        import android.content.Context;
        import android.os.Bundle;
        import android.os.Handler;
        import android.util.AttributeSet;
        import android.util.Log;
        import android.view.InflateException;
        import android.view.LayoutInflater;
        import android.view.Menu;
        import android.view.MenuInflater;
        import android.view.View;
        import android.view.LayoutInflater.Factory;    public class Options_Menu extends Activity {        private static final String TAG = "DEBUG";        /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);        }        /* Invoked when the menu button is pressed */        @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // TODO Auto-generated method stub
                super.onCreateOptionsMenu(menu);
                MenuInflater inflater = new MenuInflater(getApplicationContext());
                inflater.inflate(R.menu.options_menu, menu);
                setMenuBackground();
                return true;
            }        /*IconMenuItemView is the class that creates and controls the options menu 
             * which is derived from basic View class. So We can use a LayoutInflater 
             * object to create a view and apply the background.
             */
            protected void setMenuBackground(){            Log.d(TAG, "Enterting setMenuBackGround");
                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.background);
                                    }
                                } );
                                return view;
                            }
                            catch ( InflateException e ) {}
                            catch ( ClassNotFoundException e ) {}
                        }
                        return null;
                    }
                });
            }
        }