Как получить белый фон темы для меню настроек Android? - PullRequest
2 голосов
/ 19 января 2012

В моем приложении для Android мне бы хотелось, чтобы в моем меню опций был белый фон, чтобы мои иконки отображались лучше, я видел много приложений, у которых это было, но я не могу понять, как это сделать.

Ответы [ 2 ]

1 голос
/ 19 января 2012

Я вообще не фанат стандартного меню опций, поэтому ВСЕГДА создаю персонализированное меню с 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 );
}

Таким образом, вы сможете полностью настроить панель меню (фоновые кнопки и т. Д.)

Редактировать: Это просто грубая идея, как это сделать. И если вы делаете это в первый раз, это может быть немного избыточно только для изменения цвета фона, но позже вы сможете использовать эту концепцию в различных случаях, таких как различные эффекты слайдов, корректируя дизайн меню в соответствии с дизайн вашего приложения, изменить местоположение, размер и многое другое. Кроме того, этот вид концепции может также использоваться для дополнительных панелей поиска или уведомлений в приложении (если вы не хотите использовать диалоговое окно). Так что это определенно стоит посмотреть.

1 голос
/ 19 января 2012

Ответы по его ссылке, вероятно, помогут вам. Этот сайт дает вам ответ во многих отношениях, например, с помощью android: state_pressed = true, и другие опции (выделенные, сфокусированные) в вашем пункте меню будут отображать фон вашего элемента в белом цвете.

Как изменить цвет фона меню параметров?

...