修改Menu_item的字體屬性



前面一直在找 MenuItem的文字顏色的設置。我發現API中只有背景顏色的設置。。。

所以找到下面的方法。在OverFlow上看到的。
在onCreateOptionsMenu中覆寫一下, 使MenuItem產生的ItemView去修改文字顏色.


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {

      MenuInflater inflater = getMenuInflater();

      getLayoutInflater().setFactory(new Factory() {

      @Override
      public View onCreateView(String name, Context context, AttributeSet attrs) {

        if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
                || name.equalsIgnoreCase("com.android.internal.view.menu.ActionMenuItemView")) { //## 括號中是控件的類型, 只要是界面中有此類型的控件,全都會修改.

           try {
                LayoutInflater f = getLayoutInflater();
                final View view = f.createView(name, null, attrs);
                if(view instanceof TextView){
                 ((TextView)view).setTextColor(Color.GREEN);
                 ((TextView)view).setTextSize(13);
                                           }
                return view;
           } catch (InflateException e){
                   e.printStackTrace();
           } catch (ClassNotFoundException e){
                   e.printStackTrace();
                             }
                   }
       return null;
           }
        
      });
      
      inflater.inflate(R.menu.main, menu);
      return super.onCreateOptionsMenu(menu);
   }






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM