制作背景菜单颜色&我的应用程序的字体颜色与所有手机相同

时间:2012-10-16 11:24:51

标签: android android-layout

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

我可以改变它并使其静止吗?

2 个答案:

答案 0 :(得分: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;
        }
    });
}

答案 1 :(得分:0)

您需要为此创建自定义菜单。这是一个很好的教程。

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