更改android菜单的背景颜色 [英] Change background color of android menu
问题描述
我正在尝试将标准浅灰色更改为浅绿色.似乎没有一种简单的方法可以做到这一点(例如通过 Android 主题),但我找到了一个解决方法,如本页所述:http://tinyurl.com/342dgn3.
I'm trying to change the standard light grey to a light green. Seems that there is not a simple way to do this (through Android Themes, for example) but I have found a workaround as explained at this page: http://tinyurl.com/342dgn3.
作者好像不见了,谁能帮我整合一下这段代码?我不明白我需要在哪里实现 LayoutInflater
工厂类.
The author seems disappeared, can someone help me integrating this code? I don't understand where I need to implement the LayoutInflater
factory class.
推荐答案
当你膨胀菜单时调用这个 setMenuBackground() 方法
When ur are inflating the menu call this setMenuBackground() method
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu,menu);
setMenuBackground();
return true;
}
并将其写入 setMenuBackground() 方法
and write this in the setMenuBackground() method
protected void setMenuBackground(){
// Log.d(TAG, "Enterting setMenuBackGround");
getLayoutInflater().setFactory( new Factory() {
public View onCreateView(String name, Context context, AttributeSet attrs) {
if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
try { // Ask our inflater to create the view
LayoutInflater f = getLayoutInflater();
final View view = f.createView( name, null, attrs );
/* The background gets refreshed each time a new item is added the options menu.
* So each time Android applies the default background we need to set our own
* background. This is done using a thread giving the background change as runnable
* object */
new Handler().post( new Runnable() {
public void run () {
// sets the background color
view.setBackgroundResource( R.color.androidcolor);
// sets the text color
((TextView) view).setTextColor(Color.BLACK);
// sets the text size
((TextView) view).setTextSize(18);
}
} );
return view;
}
catch ( InflateException e ) {}
catch ( ClassNotFoundException e ) {}
}
return null;
}});
}
这篇关于更改android菜单的背景颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!