1

我想在该菜单中应用程序的背景颜色必须为黑色,字体颜色必须为白色所有设备都相同....我在不同的设备上进行了测试,但在某些设备上看起来像我想要的,但在某些设备上看起来像白色菜单和黑色字体

我可以改变它并使其成为静态吗???

4

2 回答 2

1

是的,您可以通过以下方式做到这一点....

下面是代码....对于andorid的所有手机,背景颜色为黑色,字体为白色

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    /*
     * if (Integer.parseInt(android.os.Build.VERSION.SDK) <= 8)
     * menuInflater.inflate(R.menu.capture_black, menu); else
     */
    menuInflater.inflate(R.menu.main_capture, menu);

    setMenuBackground();
    return super.onCreateOptionsMenu(menu);
}

protected void setMenuBackground() {
    // Log.d(TAG, "Enterting setMenuBackGround");
    getLayoutInflater().setFactory(new Factory() {
        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() {
                            // sets the background color
                            view.setBackgroundColor(Color.BLACK);
                            // sets the text color
                            ((TextView) view).setTextColor(Color.WHITE);
                            // sets the text size
                            ((TextView) view).setTextSize(18);
                        }
                    });
                    return view;
                } catch (InflateException e) {
                } catch (ClassNotFoundException e) {
                }
            }
            return null;
        }
    });
}
于 2012-10-16T11:26:57.380 回答
0

您需要为此创建自定义菜单。这是优秀的教程。

http://www.codeproject.com/Articles/173121/Android-Menus-My-Way

于 2012-10-16T11:28:03.347 回答