0

By default Android shows Orange color on Options Menu when an item is selected.

在此处输入图像描述

如何在单击时将自己的颜色设置为 OptionsMenu?

4

2 回答 2

0

可以自定义 android 中的选项菜单以设置背景或更改文本外观。无法使用主题和样式更改菜单中的背景和文本颜色。android 源代码 (data\res\layout\icon_menu_item_layout.xml) 使用“com.android.internal.view.menu.IconMenuItem”类的自定义项来进行菜单布局。我们可以在上面的类中进行修改来自定义菜单。为了达到同样的效果,使用 LayoutInflater 工厂类并设置视图的背景和文本颜色。

@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.setBackgroundColor(any color);

                        }
                    });
                    return view;
                } catch (InflateException e) {
                    } catch (ClassNotFoundException e) {}
            }
            return null;
        }
    });
    return super.onCreateOptionsMenu(menu);
}
于 2012-04-23T17:45:53.643 回答
0

selector.xml在您的文件夹中创建一个名为 xml 的文件,drawable然后用它填充它..

Button基本上,您是在告诉 Android,当用户单击 a或将其聚焦等事件发生时,您想要做某事......

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@color/blue" /> <!-- focused -->
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/blue" /> <!-- focused and pressed-->
    <item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed -->
    <item android:drawable="@color/white" /> <!-- default -->
 </selector>

然后将您在菜单中使用的项目的图标设置为此,例如

android:icon = "@drawable/selector",

有关使用 StateListDrawable 的更多信息,请参阅

于 2012-04-23T18:01:41.067 回答