ГЛАВНАЯ Визы Виза в Грецию Виза в Грецию для россиян в 2016 году: нужна ли, как сделать

Инженерное меню на Андроид – разбираемся в деталях. Создание меню Где кнопка меню на андроиде 5.1

Меню быстрого доступа к настройкам позволяет за считанные секунды подключиться к сети Wi-Fi, настроить яркость, автоповорот и т. д. Как и многие другие элементы управления - устройств, панель быстрого доступа к настройкам также можно установить с учетом личных предпочтений.

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

AntTek Quick Settings

Среди приложений, позволяющих отрегулировать меню быстрого доступа к настройкам, наиболее популярны AntTek Quick Settings, Power Toggles, Quick Settings, Sidebar. Мы рассмотрим создание собственного меню быстрого доступа к конфигурациям вашего устройства на примере приложения AntTek Quick Settings.

  1. В поисковой строке в магазине приложений Play Market введите название приложения.
  2. Откройте выбранное приложение.
  3. Нажмите кнопку Установить.
  4. Примите разрешения, необходимые для установки приложения.
  5. Откройте приложение после загрузки.
  6. При первом запуске программы внимательно изучите инструкцию по ее применению. Для перехода в меню быстрого доступа к настройкам выполните захват с удержанием в центре строки состояния. Чтобы задать еще один короткий путь для включения какой-либо функции на устройстве, нажмите. Кнопка позволяет изменить тему и открыть дополнительные настройки.
  7. Нажмите Next (Далее).
  8. Проверьте кнопки быстрого доступа. При необходимости добавьте еще.

До появления Honeycomb (Android 3.0) все Android устройства имели кнопку "меню" под экраном. Разработчики могли использовать ее по своему усмотрению, интерфейсы многих приложений были выстроены именно вокруг этой кнопки. В ориентированном на планшеты Honeycomb был сделан шаг в сторону отказа от механических (и сенсорных) кнопок, в связи с этим, в третьей версии Android появился класс ActionBar, который позволял дать пользователю быстрый доступ к настройкам приложения через специальную панель, называемую action bar. По мнению разработчиков Google будущее за Action Bar-ом и программисты должны отказаться от использования кнопки "меню". В настоящее время на рынке доминируют смартфоны с механической или сенсорной кнопкой под экраном, но с появлением Ice Cream Sandwich ситуация может резко измениться. Вам, как разработчику, важно заранее подготовиться к появлению таких устройств, и использовать концепцию Action bar уже сегодня.

На первый взгляд может показаться, что использование Action Bar-а вызовет проблемы при разработке программ для Android 2.x, в котором эта панель еще не была реализована. Однако здесь нет проблемы. Никто не запрещает Вам продолжать использовать кнопку "меню" на тех устройствах, где она присутствует, добавление же Action Bar-а потребует от вас написания всего нескольких строк кода.

Если бы я попытался сжать эту статью в одно предложение, оно бы звучало так: "Установите targetSdkVersion в 14, и пометьте тегом showAsAction="ifRoom" элементы меню, которые должны быть вынесены на Action Bar ".

Окончательный отказ от меню настроек в Android

Недостаточно просто отказаться от использования кнопки "меню", нужно полностью выкинуть эту концепцию из своей головы. Не создавайте меню, создайте все необходимые кнопки непосредственно внутри деятельностей (activity). Если какие-то действия не помещаются на панель, вынесите их в дополнительное выпадающее меню (action overflow). На приведенной картинке показан action bar с кнопкой для поиска и дополнительное меню с правой стороны панели.

Если Ваше приложение создано под старую версию андроида (в которой традиционно используется меню), то при запуске на Android 3 планшете в нижней части экрана будет отображаться панель, эмулирующая три кнопки, существующие на телефонах второй ветки.

Терминология довольно запутанная, но выпадающее меню (action overflow) предполагает абсолютно другую концепцию использования, нежели простое меню настроек. Вместо того, чтобы рассматривать меню как вместилище всех настроек приложения, вы создаете панель, на которую помещаете основные настройки. Все второстепенное выносится в выпадающее меню, которое вызывается при нажатии кнопки с тремя точками (Action overflow button) в правой стороны панели.

Action overflow button

Если Вы запускали приложения, написанные для Android 2.3 и ниже на устройствах без кнопок под экраном (например, на планшете с Honeycomb или на Galaxy Nexus), Вы наверно заметили, что рядом с изображением трех кнопок на панели внизу появляется и Action overflow кнопка (три точки друг над другом). Это некий компромисса, однако, не очень удачный. В приложениях, которые вообще не используется меню настроек эта кнопка ничего не делает, раздражая пользователей. Поэтому, весьма неплохим решением было бы следить за версией Android-а, и если Ваша программа запускается под Android 3.0+, убирать эту кнопку с навигационной панели и использовать Action Bar. Такой подход позволяет сохранить совместимость программы со старыми аппаратами и сделать ее более привлекательной для новых.

Если ваша программа запущена на устройствах без кнопок, система решает, нужно ли добавить action overflow на навигационную панель в зависимости от значения поля в манифесте. Логика следующая

  • Если Вы установили в minSdkVersion или targetSdkVersion значение больше 11, то система не добавляет эту кнопку.
  • С другой стороны, система создает эту кнопку, когда Вы запускаете приложение на Android 3.0 и выше.
  • Единственное исключение: когда Вы установите minSdkVersion в 10 или ниже; targetSdkVersion в 11, 12 или 13, и не будете использовать ActionBar, система добавит эту кнопку на телефонах (не планшетах) под управлением Android 4.0 и выше. В основе этого исключения лежит следующая идея: если Вы разрабатываете приложение одновременно для телефонов второй ветки и для планшетов третьей, то Вы предполагаете, что у телефонов должна быть кнопка меню, а у планшетов ее нет.

Таким образом, если вы хотите запретить overflow action кнопку в панели навигации, Вам нужно установить targetSdkVersion в 14 (В minSdkVersion можно записать более низкое значение, чтобы программа могла запускаться на старых устройствах).

Переход к концепции action bar-а

Если у Вас есть деятельности, которые используют меню настроек (созданное с помощью onCreateOptionsMenu()), то убрав кнопку с навигационной панели (установив targetSdkVersion=14) Вы должны предоставить пользователю альтернативное средство доступа к настройкам. К счастью, от Вас не потребуется много работы, поскольку в системе автоматически создается action bar.

Добавьте showAsAction="ifRoom" в теги элементов, которые вы хотите поместить в action bar. Если вы не уверены, какой из элементов стоит включать в Action Bar, обратитесь кAndroid Design’s Action Bar guide .

Чтобы сделать восприятие вашей программы более целостным, рекомендуем Вам использовать в качестве иконок для Action bar-а иконки отAndroid UX Team . Архив .

Как удалить Action Bar из Android приложения

Если Вам не нужен Action bar, Вы можете удалить его из любой деятельности, либо вообще из приложения. Это может быть актуально для игр и программ, не использующих меню настроек. Вы можете удалить action bar, используя тему Theme.Holo.NoActionBar или Theme.DeviceDefault.NoActionBar.

Если вы хотите использовать эти схемы, но сохранить обратную совместимость, можете использовать систему управления ресурсами, чтобы установить разные темы для разных версий платформ. Более подробно эта тема раскрыта здесь. Вам понадобится создать собственную тему, которая будет наследовать темы различных платформ в зависимости от текущей версии.

Например, Вы можете объявить тему для своего приложения

(или для конкретной деятельности в теге ).

Для устройств, работающих на Android 2, включите следующую тему в res/values/themes.xml.



Для Honeycomb включите следующую тему в res/values-v11/themes.xml.



При запуске в зависимости от версии API система выберет подходящую тему.

Заключение

Повторим тезисно ключевые идеи и моменты статьи:

  • На новых Android устройствах может отсутствовать кнопка "menu", поэтому при разработке программ лучше вообще отказаться от ее использования.
  • Установите targetSdkVersion = 14 и протестируйте свое приложение на Android 4.0.
  • Добавьте тег showAsAction="ifRoom" в элемент меню, если хотите, чтобы он автоматически попал на панель action bar.
  • Если в Вашем приложении не используется ActionBar, Вы можете убрать его, воспользовавшись темами Theme.Holo.NoActionBar и Theme.DeviceDefault.NoActionBar.

Есть множество скрытых функций, которые могут быть весьма полезны. System UI Tuner - одна из них. После активации этого меню пользователь получает больше возможностей в плане кастомизации интерфейса Android. В одной из статей на Трешбоксе мы уже .

Некоторые разработчики уже приспособили System UI Tuner под нужды обычных пользователей. Например, которое было доступно и на предыдущих версиях Android, использует UI Tuner для добавления кастомных кнопок в меню быстрых действий, которое выезжает сверху вместе со «шторкой» уведомлений. Самое крутое заключается в том, что на Android 6.0 Marshmallow использование Custom Quick Settings не требует root-доступа.

Как это работает

В первую очередь, вам необходимо активировать то самое меню System UI Tuner, которое работает только на стабильной версии Android 6.0 Marshmallow. Некоторые превью-версии Android M не получили этой функции. Об активации UI Tuner можно прочесть в нашей соответствующей статье, но если вы не хотите переходить куда-то из этого материала, то: полностью откройте верхнюю «шторку» с быстрыми действиями и уведомлениями, зажмите на 5–7 секунд кнопку с шестеренкой, которая ведет в меню настроек - все, System UI Tuner активирован. Теперь в общем меню настроек Android появился соответствующий пункт, но вам он практически не понадобится. Приложение Custom Quick Settings сделает все за вас.


Далее установите само приложение Custom Quick Settings, которое доступно бесплатно, но с рекламой. Она удаляется через внутренние покупки - 99 рублей.


После установки приложения кастомную кнопку с действием в верхнем меню можно добавить парой действий. По нажатию на плюс Custom Quick Settings можно выбрать название кнопки, ее действие - открытие любой заданной веб-страницы, запуск приложения, переход в какое-то подменю настроек или активация модуля. Для кнопки можно выбирать иконку (всего доступно 1 200 штук стандартных; поддерживаются кастомные), а также дополнительное действие по долгому нажатию. Например, можно создать быструю ссылку на Трешбокс, а по долгому нажатию будет открываться или любой другой сайт - очень удобная вещь.

Возможности

Также можно сделать быстрое действие, которое подключит устройство к определенному Wi-Fi, присутствует в списке сохраненных. Кастомные кнопки с запуском приложений будут очень полезны - отпадает необходимость в переходе на рабочий стол для открытия нужной программы.

Возможности в плане создания быстрых действий очень ограничены - можно только задавать подключение к определенной сети Wi-Fi или устройству с Bluetooth. Здесь все упирается в функционал System UI Tuner.


В Pro-версии приложения доступно добавление функциональных ярлыков с быстрыми действиями. Есть поддержка IFTTT. Стоит отметить, что все кастомные кнопки, добавленные с помощью Custom Quick Settings, не работают на экране блокировки - они просто не отображаются в «шторке», что довольно ожидаемо.

Напомним, все эти возможности также доступны на Android 5.0 / 5.1, но для этого необходимы . Разработчик отмечает, что Custom Quick Settings не использует дополнительную энергию аккумулятора - программа запускается единожды при загрузке системы, а кастомные кнопки обновляются только после того, как это сделает пользователь.

Приятно видеть, как операционная система Android с каждой новой версией перенимает функции, которые ранее были доступны только с root-правами. Надеемся, что компания Google не удалит функцию System UI Tuner в будущем обновлении Android 6.0.1 или 6.1. Кстати, вы уже обновились до Marshmallow?

Главное меню - один из основных инструментов для взаимодействия пользователя с приложением. В Android 2.3.x и раньше оно было «спрятано» на аппаратной кнопке Menu, и разработчики рисовали меню кто как умел. Но начиная с Android 3.0 недоработка была исправлена, меню стало стандартным компонентом на Action Bar, и получило ряд новых возможностей. При этом процесс разработки меню практически не претерпел изменений. Меню в Android - это не просто набор кнопок, на которые можно вешать OnClickListener . В Android с меню можно сделать куда больше, чем кажется на первый взгляд.

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



Вот так по-разному может выглядеть меню одного и того же приложения.

Наша первая кнопка в меню

Меню в Android описываются в файлах ресурсов или формируются программным кодом. Рекомендуется первый вариант по целому ряду причин: скорость разработки, наглядность, простота сопровождения. Ресурсы меню располагаются в подкаталоге menu каталога ресурсов приложения res . Создаем каталог menu , затем создаем новый Android XML File:

Выбираем тип ресурса Menu , вводим имя файла. Так как в разных activity меню, скорее всего, будет разным, рекомендую привязывать имена файлов ресурсов меню к именам activity.

В открывшемся редакторе введем код первой кнопки нашего меню:

Давайте рассмотрим использованные атрибуты:

  • android:id указываем, чтобы потом в коде отличать одни кнопки от других.
  • android:orderInCategory указывает порядок нашей кнопки относительно других. Указывайте порядок с шагом в 10 или 100, это позволит в будущем добавлять новые элементы в любое место, не перестраивая порядок остальных.
  • android:showAsAction - самый интересный параметр, поскольку именно он управляет поведением элементов меню в разных ситуациях. Он может принимать целый ряд значений:
    • ifRoom - Показывать элемент в action bar, только если для него достаточно места. Если места недостаточно, элемент будет автоматически скрыт в дополнительное меню (то, которое показано тремя точками друг над другом). Это лучший способ кастомизации меню в зависимости от размера экрана устройства. На больших экранах планшетов action bar будет заполнен кнопками, а на небольших телефонах будут показаны самые важные кнопки, в то время как до остальных тоже можно добраться, но только через дополнительное меню. Имейте в виду, что дополнительное меню отображается в action bar только на тех смартфонах, на которых нет аппаратной кнопки меню.
    • withText - Рядом с иконкой кнопки будет показан текст, заданный свойством android:title . Этот параметр можно указывать в комбинации с другими, разделяя параметры знаком |
    • never - Кнопка никогда не будет видна на action bar, даже если для нее есть место. К такой кнопке всегда придется добираться через дополнительное меню.
    • always - Всегда показывать кнопку в action bar. Данным параметром нельзя злоупотреблять, так как на маленьких телефонах кнопки могут начать заползать на другие элементы action bar, например на заголовок приложения. Определите для каждой activity максимум одну самую важную кнопку, без которой никак нельзя, и отметьте always только у нее. Остальные (а по возможности все) должны быть ifRoom .
    • collapseActionView - позволяет сделать кнопку, открывающую или скрывающую дополнительный элемент View в action bar. Например, можно задать такой параметр иконке поиска, по ее клику показывать прямо в action bar поле для ввода поискового запроса.
  • android:title - определяет заголовок кнопки меню. Он может отображаться рядом с иконкой в action bar или же как название элемента в дополнительном меню.
  • android:icon - иконка кнопки.

Иконки для меню

Если вы разрабатываете приложение в стиле Holo, вы можете использовать готовый набор иконок от Google, который доступен всем для загрузки с официального сайта совершенно бесплатно.

Набор иконок представлен отдельно для темной и отдельно для светлой темы Holo, а также для разных размеров экранов. Если вы не можете позволить себе дизайнера в команде, этот набор просто незаменим.

Подключение меню к Activity

Загрузить меню из ресурса очень быстро. Открываем код Activity и перекрываем метод onCreateOptionsMenu:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); return true; }
Теперь меню отображается, но при нажатии на кнопку ничего не происходит. Повесить обработчик на кнопку можно кодом или прямо в XML-ресурсе, задав в свойстве android:onClick имя метода-обработчика. Чтобы сделать то же самое кодом, нужно в Activity перекрыть метод onOptionsItemSelected:
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: обработчик нажатия здесь return true; } return super.onOptionsItemSelected(item); }

Создаем подменю

Подменю полезно, когда мы хотим уточнить способ выполнения действия, представленного в action bar. К примеру, у нас есть список покупок и кнопка «Сортировка». По нажатию кнопки нужно выяснить, по какому параметру пользователь хочет отсортировать элементы списка: по категории товара, по названию или по порядку добавления в список. Посмотрим код подменю для такого случая:


Здесь мы объявили еще один тег внутри тега. Подменю представляет собой группу все тех же тегов, что позволяет при необходимости сделать подменю в подменю и так далее.

Radio button"ы в меню

Мы только что сделали меню для выбора порядка сортировки покупок. Было бы здорово показывать, какой способ сортировки используется в текущий момент. Список может быть отсортирован только одним из трех возможных способов, что отлично соответствует идее radio button. Чтобы сделать из нашего подменю набор radio button, достаточно тегу указать свойство android:checkableBehavior="single" . Возможные значения android:checkableBehavior:
  • single - выбор только одного из доступных элементов, наш случай
  • all - выбор любого количества доступных элементов, аналог check box
  • none - элементы группы являются обычными элементами меню, это значение по умолчанию

Полученный код меню:


Если запустить приложение и попробовать выбрать один из способов сортировки, ничего не произойдет. В меню не показано, что какой-то элемент выбран. Это придется сделать вручную вызовом item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: обработчик нажатия здесь return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }

Если у вас остались вопросы по работе с главным меню, буду рад ответить в комментариях.

Когда то давно, лет 5 назад стремительно набирали популярность аппараты с операционной системой Android. Хорошее было время, мир выходил из кризиса, впереди было много интересного и на каждом аппарате была кнопка Меню.
Спустя 2 года парни из Android сообщили о том, что кнопка "меню" на корпусе аппарата теперь уже не модно и можно без неё. С тех пор каждый из нас (Гильдии разработчиков) знает, как вызвать меню на подавляющем большинстве андроид девайсов.
Кому то это покажется страшным баяном, пусть так, но на прошлой неделе мы потратили 2 часа своей жизни на то, чтобы это объяснить пользователю. Мириться с этим было нельзя, поэтому ниже привожу описание того, как вызвать функцию меню на андроид аппаратах.
Вот так выглядят механические кнопки меню на большинстве распространённых устройств:

Причём в большинстве случаев для вызова функции меню достаточно одного короткого касания. Однако, часто вызов меню может быть добавлен к кнопке выбора запущенных приложений. Выглядит она так:


В этом случае меню откроется только при долгом нажатии (так называемый лонг-клик)! То есть не просто ткнули пальцем, а ткнули и подержали . Многие говорят после этого Вау!

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


Причём не всегда максимально справа, но выглядит эта кнопка именно так.
На свежих версиях Android OS кнопка меню выглядит так.