修改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