2011-06-03 6 views
1

options menufont size,text colorおよびbackgroundを追加しようとしましたが、解決できませんでした。感謝.....!、ありがとう。Android:文字色、背景、フォントサイズをオプションメニューに追加

@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

はエラー404、次のコード

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

は、Androidで簡単ではありません見つけた場合、最大投票してください。しかし、自分自身を実装する方法を示すgreat articleがあります。

背景色を設定することは可能ですが、2.3ではかなりバグがあります。詳細については、How to change the background color of the options menu?を参照してください。

-1

1:あなたは、単にちょうど アンドロイドを書き込むことによって、テキストに色を追加することができますの、textColor =「#1 FF00FF」 をあなたのレイアウトXMLでTextViewのタグに

または第二の方法は、あなたがして色を追加することができます

です 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); 
} 
関連する問題