选项菜单上的白色背景(Android)

时间:2011-08-09 01:36:56

标签: java android graphics

在我的三星Galaxy中按菜单按钮时,菜单背景为深蓝色(几乎为黑色)。我认为默认情况下背景颜色是rom / version主题。对于我的应用程序,我需要一个白色(或非常轻的)背景,否则我的图标实际上是不可见的。但我没有看到任何改变菜单背景的方法。

我怎样才能达到目的?

提前致谢

1 个答案:

答案 0 :(得分:1)

将它放在您的活动类中:

protected void 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
                    {
                            LayoutInflater f = getLayoutInflater();
                            final View view = f.createView( name, null, attrs );
                            new Handler().post( new Runnable()
                            {
                                public void run()
                                {
                                    // Changes the color of the menu item here
                                    view.setBackgroundColor(Color.WHITE);
                                }
                            });
                            return view;
                    }
                    catch (InflateException e)
                    {
                    }
                    catch (ClassNotFoundException e )
                    {
                    }
            }
            return null;
        }
    });
}

然后创建onCreateOptionsMenu()侦听器:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    super.onCreateOptionsMenu(menu);
    menu.clear();
    // Add menus here
    setMenuBackground();
    return true;
}

这样可以将选项菜单的背景更改为任何颜色或图像(在本例中为白色)。