改变Android中menu菜单的背景色http://blog.sina.com.cn/s/blog_778ad6130100vzwv.htmlprotected void setMenuBackGround() {
  getLayoutInflater().setFactory(
    new android.view.LayoutInflater.Factory() {     @Override
     public View onCreateView(String name, Context context,
       AttributeSet attrs) {
      // TODO Auto-generated method stub
      // 指定自定义inflater的对象
      if (name
        .equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
       try {
        LayoutInflater inflater = getLayoutInflater();
        final View view = inflater.createView(name,
          null, attrs);
        new Handler().post(new Runnable() {
         public void run() {
          view
            .setBackgroundResource(R.drawable.application_background_static);
         }
        });
        return view;
       } catch (InflateException e) {
        e.printStackTrace();
       } catch (ClassNotFoundException e) {
        e.printStackTrace();
       }
      }
      return null;
     }
    });
 }

解决方案 »

  1.   

    android在学习——Menu背景图片,背景色的设置
    http://www.haogongju.net/art/1317915
      

  2.   

    android menu 实现动态修改menu
    http://blog.csdn.net/pengruikeji/article/details/6432807
      

  3.   

    Android 菜单(OptionMenu)大全 建立你自己的菜单 
    http://www.cnblogs.com/salam/archive/2011/04/04/2005329.html
      

  4.   

    上面这些方法都不行,难道只能去修改对应的.9.png图片吗?
      

  5.   

    android version 2.3上 如何让自定义menu 背景颜色
    http://www.oschina.net/question/167165_24912getLayoutInflater().setFactory(new Factory() {    02       @Override  03       public View onCreateView(String name, Context context,   04         AttributeSet attrs) {   05        // TODO Auto-generated method stub   06        if (name.equals("com.android.internal.view.menu.IconMenuItemView")) {    07              LayoutInflater f = getLayoutInflater();    08              try {    09                   final View view = f.createView(name, null, attrs); // 尝试创建我们自己布局    10                   new Handler().post(new Runnable() {    11                         @Override   12                         public void run() {    13                              view.setBackgroundResource(R.drawable.pressed); // 设置背景为我们自定义的图片    14                         }    15                    } );    16                    return view;    17         18                } catch (InflateException e) {    19                            e.printStackTrace();    20                } catch (ClassNotFoundException e) {    21                             e.printStackTrace();    22                }    23            }    24        return null;   25       }    26 }); 
    该方法在2.3 上已经没有效果了, 求2.3 版本后如和修改 menu  item 按下时候的背景颜色。
      

  6.   


    我用这个压根就编译不过去!!!the method onCreateView( ) must override a superclass method.
      

  7.   


    我用这个压根就编译不过去!!!the method onCreateView( ) must override a superclass method.
      

  8.   

    Android : Must Override a Superclass Methodhttp://www.cnblogs.com/mybkn/archive/2012/04/17/2452997.html
    Android 在eclipse  import 项目时经常有这个问题,关于@override 标示的错误,好多说法是“在没有进行设置的情况下,eclipse默认使用java 1.5来编译代码,所以经常会出现这个问题。解决办法:选择Window –> Preferences –> Java –> Compiler(mac上是Eclipse –> Preferences –> Java –> Compiler),确认选择的是1.6版本的编译器”可是我打开一看,居然是1.7的,这应该比1.6高级啊,还有错,郁闷了,只能去掉@override的标示,不管他了~
      

  9.   

    jdk 1.5 @Override The method of type must override a superclass method
    http://hi.baidu.com/9126nono/blog/item/07dff61867e39f4243a9adde.html
      

  10.   

    android定制你自己的menu菜单,修改menu字体颜色 
    http://bbs.waapk.com/thread-4084-1-1.html
    原帖来自ligux~~~~傻子啊傻子
    如上次教程一样,准备工作是java环境以及反编译工具,还有你从自己ROM里提取出来的framework-res.apk。反编译之后定位到value/styles.xml
    1、查找IconMenu,找到下面的代码:
        </style>
        <style name="TextAppearance.Widget.IconMenu.Item" parent="@style/TextAppearance.Small">
            <item name="textColor">?textColorPrimaryInverse</item>
        </style>
    可以看到他的color定义,为textColorPrimaryInverse,于是我们继续查找这个textColorPrimaryInverse,在页首发现,他的颜色定义到了
            <item name="textColorPrimaryInverse">@color/primary_text_light</item>
    就是res/color目录下primary_text_light.xml,找到,打开一看,果然是你现在一直想改掉的X色。2、开始修改,这里有一个最简单的方法,如下所示
        </style>
        <style name="TextAppearance.Widget.IconMenu.Item" parent="@style/TextAppearance.Small">
            <item name="textColor">?textColorPrimaryInverse</item>
        </style>
    直接将?textColorPrimaryInverse这一串修改为你想要的颜色,当然这里不能直接用RGB颜色代码了,你可以去color里寻找一个你中意的颜色,实在没有可以自己新建,然后在这里调用。
        </style>
        <style name="TextAppearance.Widget.IconMenu.Item" parent="@style/TextAppearance.Small">
            <item name="textColor">@color/primary_text_lighte</item>
        </style>
    3、关于ExpandedMenu,看这字面意思就是扩展菜单,简单点儿说就是当你在MENU菜单里点更多的时候弹出的二级菜单。所以,这里一样需要修改。
    同样在styles.xml,查找ExpandedMenu,定位到
        <style name="Theme.ExpandedMenu" parent="@style/Theme">
            <item name="listViewStyle">@style/Widget.ListView.Menu</item>
            <item name="windowAnimationStyle">@style/Animation.OptionsPanel</item>
            <item name="background">@null</item>
            <item name="itemTextAppearance">?textAppearanceLargeInverse</item>
        </style>
    在这里,加入一行比如<item name="textColor">@color/primary_text_lighte</item>覆盖父级定义,来定义二级菜单的字体颜色。原理同上。4、最后,编译回去,替换进手机,重启,完成。
      

  11.   

    其实改对应的图片就可以了----./frameworks/base/core/res/res/drawable-hdpi/menu_background.9.png但要注意的是----framework-res是编译成了一个APK文件。所以要特别注意framework-res.apk这个文件有没对应更新到!!!
      

  12.   

    标题栏的图片的配置XML文件内容为----./frameworks/base/packages/SystemUI/res/layout/status_bar.xmlandroid:background="@drawable/statusbar_background"所以标题栏的图片的位置应该为----./frameworks/base/packages/SystemUI/res/drawable-hdpi/statusbar_background.9.png没亲自实践修改这个!!!
      

  13.   


    对应的图片应该是----/frameworks/base/core/res/res/drawable-hdpi/menu_background_fill_parent_width.9.png
      

  14.   

    把 getLayoutInflater()改为 (LayoutInflater) context  .getSystemService(Context.LAYOUT_INFLATER_SERVICE)