項目中用到更改自訂AndroidMenu背景圖片,背景色等,網上轉載了一篇如下:本文轉載自 池塘裡的大象
更改背景顏色後效果如下:
具體代碼如下:
public boolean onCreateOptionsMenu(Menu menu) {//MenuInflater mMenuInf = getMenuInflater();//mMenuInf.inflate(R.menu.main_menu, menu);menu.add(0,R.id.main_menu_about,0,R.string.main_menu_about).setIcon(R.drawable.menu_icon_about);menu.add(0,R.id.main_menu_exit,1,R.string.main_menu_exit).setIcon(R.drawable.menu_icon_exit);SetMenubackgroudcolor();return true;}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.main_menu_about: break; case R.id.main_menu_exit://退出系統 //取消通知 //notificationManager.cancel(R.drawable.logo_icon_16); DialogUtil.Exitdialog(MyHomeActivity.this,notificationManager); break; } return true; }
更改顏色方法如下:
private void SetMenubackgroudcolor() {getLayoutInflater().setFactory(new Factory() {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.ListMenuItemView")){try {LayoutInflater f = getLayoutInflater(); final View view = f.createView( name, null, attrs ); new Handler().post( new Runnable() { public void run () { //view.setBackgroundResource( R.drawable.menu_backg);//設定背景圖片 view.setBackgroundColor(Color.parseColor("#F6F9FE"));//設定背景色 }}); } catch (InflateException e) {e.printStackTrace();} catch (ClassNotFoundException e) { e.printStackTrace();}}return null;}});}
就這樣。。。不過本人沒有測試!覺得應該是可行的!