2011-06-03 68 views
1

我尝试了很多添加font sizetext colorbackgroundoptions menu但不能能解决,如何为下面的代码做到这一点帮助总是?赞赏.....!,谢谢。安卓:添加文字颜色,背景颜色和字体大小optionsmenu

@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); 
     } 

回答

2

试试下面的代码

@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 
      } 
     } 
-1

1:你可以简单地添加颜色仅通过写 Android的文本:在TextView的标签文字颜色=“#FF00FF” 在布局XML

或第二种方法是

您可以通过添加颜色使用 values-> string.xml并向您的字符串添加颜色资源

0

使用您的fav图标和颜色创建自定义xml视图。使用menuinflator将它们充气到选项菜单。

0
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    // getMenuInflater().inflate(R.menu.splash_screen, menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.payby_menu, menu); 
    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() { 
          // set the background drawable 
          // view.setBackgroundResource(R.drawable.my_ac_menu_background); 
          // set the text color 
          ((TextView) view).setTextColor(Color.WHITE); 
         } 
        }); 
        return view; 
       } catch (InflateException e) { 
       } catch (ClassNotFoundException e) { 
       } 
      } 
      return null; 

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