您的位置:首页 > 移动开发 > Android开发

Customizing Background and Text color in Options Menu Android

2012-06-15 10:11 656 查看



by Meghana under Uncategorized

Tweet

6

Options menu in android can be customized to set the background or change the text appearance. The background and text color in the menu couldn’t be changed using themes and styles.
The android source code (datareslayouticon_menu_item_layout.xml)uses a custom item of class “com.android.internal.view.menu.IconMenuItem”View for the menu layout. We can make changes in the above class to customize the menu. To achieve the same, use LayoutInflater
factory class and set the background and text color for the view.

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.my_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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息