请问大家如何更改MENU菜单内图标的大小以及背景颜色.
我的图标是32x32大小的,但放在menu菜单内显得很小,想改大点,该如何操作?

解决方案 »

  1.   

    标也可以通过setIcon()函数被添加到菜单项中
      

  2.   

    如何更改menu的背景颜色呢?默认按下去为橘黄色,我想改另外一个颜色,该如何改啊。
      

  3.   

    想到个方法,不知是否可行,截取click消息,往菜单上贴图,或者重写menu控件?
      

  4.   


    应该有设background color才对啊,重写控件这个太复杂了吧.
      

  5.   

    <item android:id="@+id/sad"
                    android:title="Sad"
                    android:background="#22222222"
                    android:icon="@drawable/stat_sad" />
      

  6.   

    可以用自己定义的layout来作为菜单布局
      

  7.   

    其实我是想在按下时改变MENU的背景色,但以下设置没起到作用
    <item android:state_pressed="false" 
            android:drawable="@drawable/icon_menu_stereo" 
            android:background="#22222222"/>
      

  8.   

    真是。
    自己定义一个Bitmap放到Menu上不就行了么,各种状态下用不同的图片。。
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:state_focused="true"
            android:drawable="@drawable/buttonbar_focused" />
        <item
            android:state_pressed="true"
            android:drawable="@drawable/buttonbar_pressed" />
        <item
            android:state_selected="true"
            android:drawable="@drawable/buttonbar_active" />
        <item
            android:state_selected="false"
            android:drawable="@drawable/buttonbar_inactive" />
    </selector>
      

  9.   


    这只是改变了MENU的button imgae,并没有改变背景啊.这个和ImageButton不一样好象,ImageButton通过setBackgroundResource可以修改背景图片.
      

  10.   

    看看menu自己实现的有关布局的文件,不过感觉自己画一个更好看
      

  11.   

    我问一下楼主,怎样设置menu的大小呢,,用它显示的按钮感觉占屏幕有点大,我想设置小点,,
      

  12.   

    改变menu的颜色,可以这么实现,不知道是不是你要的结果:
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
           setMenuBackground();
           return super.onCreateOptionsMenu(menu);
    }
    protected void setMenuBackground() {
    MenuDemo.this.getLayoutInflater().setFactory(
    new android.view.LayoutInflater.Factory() {
    @Override
    public View onCreateView(String name, Context context,
    AttributeSet attrs) {
    // 指定自定义inflate的对象
    if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
    || name.equalsIgnoreCase("com.android.internal.view.menu.ListMenuItemView")) {
    try {
    LayoutInflater f = getLayoutInflater();
    final View view = f.createView(name, null,
    attrs);
    new Handler().post(new Runnable() {
    public void run() {
    // 设置背景图片
    view.setBackgroundResource(R.drawable.upcorners_shape);
    }
    });
    return view;
    } catch (InflateException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    }
    return null;
    }
    });
    }