如何获得Android选项菜单的白色背景主题?

时间:2012-01-19 13:35:08

标签: android android-theme android-optionsmenu

在我的Android应用程序中,我希望我的选项菜单具有白色背景,以便我的图标显示得更好,我看到很多应用程序都有这个,但我无法弄清楚如何完成这项工作。

2 个答案:

答案 0 :(得分:1)

他的链接中的答案可能对你有帮助。该网站以多种方式为您提供答案,例如使用android:state_pressed = true以及菜单项中的其他选项(选中,聚焦)将以白色显示您的项目背景。

How to change the background color of the options menu?

答案 1 :(得分:1)

我不是标准选项菜单的粉丝,这就是为什么我总是用ViewStubs创建自定义菜单的原因。只需创建一个新的布局,您可以在其中设计菜单栏,将其与布局文件中的ViewStub集成,然后滑入菜单。

示例java代码:

public boolean onKeyDown( int keyCode, KeyEvent event ) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_MENU:
            mMenuPanel = ( ( ViewStub ) findViewById( R.id.stub_onoption ) ).inflate();
            // initialize buttons of your menu layout and define setOnClickListener()
            if( !menuVisible ) {
                constants.showPanel( this, mMenuPanel, true );
                menuVisible = true;
            } else {
                constants.hidePanel( this, mMenuPanel, true );
                menuVisible = false;
            }
            return true;
    default:
        break;
    }
}

public static void hidePanel( Context context, View panel, boolean slideDown ) {
    panel.startAnimation( AnimationUtils.loadAnimation( context, slideDown ? R.anim.slide_out : R.anim.slide_in_top ) );
    panel.setVisibility( View.GONE );
}

public static void showPanel( Context context, View panel, boolean slideUp ) {
    panel.startAnimation( AnimationUtils.loadAnimation( context, slideUp ? R.anim.slide_in : R.anim.slide_out_top ) );
    panel.setVisibility( View.VISIBLE );
}

这样您就可以完全自定义菜单栏(背景按钮等)

编辑:这只是如何做到的粗略想法。如果你是第一次这样做,它可能只是为了改变背景颜色有点超重,但你可以在以后的各种场合使用这个概念,如不同的幻灯片效果,根据调整菜单设计您的应用程序设计,更改位置,大小和更多的东西。 此外,这种概念还可用于可选搜索栏或应用内通知(如果您不想使用对话框)。所以它绝对值得研究。