Search code examples
androidfont-sizeoptions-menutextcolor

Android: adding text color,background and font size to optionsmenu


I tried a lot to add the font size,text color and background for my options menu but couldn't able to solve, how to do this for the following code?Help is always appreciated.....!, Thanks.

 @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);

        menu.add("Share In Heart Club!");
        menu.add("Play");
        menu.add("Check Your Heart Type?");
        menu.add("Cancel");


        // Return true so that the menu gets displayed.
        return true;
    }

     @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            // Close the menu after a period of time.
            // Note that this STARTS the timer when the options menu is being
            // prepared, NOT when the menu is made visible.
            Timer timing = new Timer();
            timing.schedule(new TimerTask() {

                @Override
                public void run() {
                    closeOptionsMenu();
                }
            }, 10000);
            return super.onPrepareOptionsMenu(menu);
        }

Solution

  • Try the following code

    @Override
            public boolean onCreateOptionsMenu(android.view.Menu menu) {
                // MenuInflater inflater = getMenuInflater();
                // inflater.inflate(R.menu.menu, menu);
                // setContentView(R.layout.menu);
                menu.clear();
                setMenuBackground();
                menu.add(0, MobilePagesConstant.MenuConstant.MENU_ABOUT, 0,
                        R.string.menu_about).setIcon(R.drawable.ico_about);
    
                menu.add(0, MobilePagesConstant.MenuConstant.MENU_INDEX, 1,
                        R.string.menu_index).setIcon(R.drawable.ico_help);
    
                // if (HNHConstant.IS_LAST_LIST_ON == 1) {
                menu.add(0, MobilePagesConstant.MenuConstant.MENU_CUSTOMER_SUPPORT, 2,
                        R.string.menu_customer_support).setIcon(
                        R.drawable.ico_customer_support);
    
                menu.add(0, MobilePagesConstant.MenuConstant.MENU_LEGAL, 3,
                        R.string.menu_legal).setIcon(R.drawable.ico_moderate);
                menu.add(0, MobilePagesConstant.MenuConstant.MENU_GETTING_STARTED, 0,
                        R.string.menu_getting_started).setIcon(
                        R.drawable.ico_gettingstarted);
    
                return true;
    
            }
    
    
    
    
    
     private void setMenuBackground() {
                // TODO Auto-generated method stub
                getLayoutInflater().setFactory(new Factory() {
    
                    @Override
                    public View onCreateView(final String name, final Context context,
                            final AttributeSet attrs) {
    
                        if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
    
                            try { // Ask our inflater to create the view
                                final LayoutInflater f = getLayoutInflater();
                                final View[] view = new View[1];
                                try {
                                    view[0] = f.createView(name, null, attrs);
                                } catch (InflateException e) {
                                    chaneDeafultMenu(name, attrs, f, view);
                                }
                                // Kind of apply our own background
                                new Handler().post(new Runnable() {
                                    @Override
                                    public void run() {
    
                                        view[0].setBackgroundResource(R.drawable.background);
                                        ((TextView) view[0]).setTextColor(Color.BLACK);
                                        ((TextView) view[0])
                                                .setTypeface(Typeface.SANS_SERIF);
                                    }
                                });
                                return view[0];
                            } catch (InflateException e) {
                            } catch (ClassNotFoundException e) {
    
                            }
                        }
                        return null;
                    }
                });
            }
    
            static void chaneDeafultMenu(final String name,
                    final android.util.AttributeSet attrs, final LayoutInflater f,
                    final View[] view) {
                // mConstructorArgs[0] is only non-null during a running call to
                // inflate()
                // so we make a call to inflate() and inside that call our dully
                // XmlPullParser get's called
                // and inside that it will work to call
                // "f.createView( name, null, attrs );"!
                try {
                    f.inflate(new XmlPullParser() {
                        @Override
                        public int next() throws XmlPullParserException, IOException {
                            try {
                                view[0] = f.createView(name, null, attrs);
                            } catch (InflateException e) {
                            } catch (ClassNotFoundException e) {
                            }
                            throw new XmlPullParserException("exit");
                        }
    
                        @Override
                        public void defineEntityReplacementText(String arg0, String arg1)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public int getAttributeCount() {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public String getAttributeName(int arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getAttributeNamespace(int arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getAttributePrefix(int arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getAttributeType(int arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getAttributeValue(int arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getAttributeValue(String arg0, String arg1) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public int getColumnNumber() {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public int getDepth() {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public int getEventType() throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public boolean getFeature(String arg0) {
                            // TODO Auto-generated method stub
                            return false;
                        }
    
                        @Override
                        public String getInputEncoding() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public int getLineNumber() {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public String getName() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getNamespace() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getNamespace(String arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public int getNamespaceCount(int arg0)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public String getNamespacePrefix(int arg0)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getNamespaceUri(int arg0)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getPositionDescription() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getPrefix() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public Object getProperty(String arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public String getText() {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public char[] getTextCharacters(int[] arg0) {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public boolean isAttributeDefault(int arg0) {
                            // TODO Auto-generated method stub
                            return false;
                        }
    
                        @Override
                        public boolean isEmptyElementTag()
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return false;
                        }
    
                        @Override
                        public boolean isWhitespace() throws XmlPullParserException {
                            // TODO Auto-generated method stub
                            return false;
                        }
    
                        @Override
                        public int nextTag() throws XmlPullParserException, IOException {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public String nextText() throws XmlPullParserException,
                                IOException {
                            // TODO Auto-generated method stub
                            return null;
                        }
    
                        @Override
                        public int nextToken() throws XmlPullParserException,
                                IOException {
                            // TODO Auto-generated method stub
                            return 0;
                        }
    
                        @Override
                        public void require(int arg0, String arg1, String arg2)
                                throws XmlPullParserException, IOException {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public void setFeature(String arg0, boolean arg1)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public void setInput(Reader arg0) throws XmlPullParserException {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public void setInput(InputStream arg0, String arg1)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public void setProperty(String arg0, Object arg1)
                                throws XmlPullParserException {
                            // TODO Auto-generated method stub
    
                        }
                    }, null, false);
                } catch (InflateException e1) {
                    // "exit" ignored
                }
            }