Как добавить собственные значки на панель навигации в Android O

Учебное пособие о том, как добавить пользовательские значки по вашему выбору на панель навигации в Android O, чтобы вы всегда знали, что представляет собой ваша пользовательская клавиша.

Если вы следили наше освещение Android O, то, возможно, вы видели наши руководства о том, как изменить панель навигации на переключить режим «картинка в картинке», давать возможность клавиши управления мультимедиа во время воспроизведения музыки, а сегодня как добавить Кнопки вперед/назад для быстрого просмотра электронной почты. Возможные варианты использования настраиваемая панель навигации огромны, и наши первые три урока лишь поверхностно. Но хотя у нас есть еще несколько полезных руководств, которыми мы можем поделиться с нашими читателями, есть одна вещь, которую нам нужно осветить, прежде чем мы сможем перейти к нашим следующим урокам: как добавить собственные значки к клавишам панели навигации в Android O.

Новый настройщик панели навигации Android O, доступный через SystemUI Tuner, позволяет вам установить код для клавиши навигации. (Напоминание: чтобы получить доступ к SystemUI Tuner, вам нужно опустить строку состояния и удерживать и удерживать значок шестеренки в правом верхнем углу, пока не увидите всплывающее сообщение о том, что SystemUI Тюнер теперь доступен.) Поскольку кодов клавиш очень много, Android O не предлагает значок для каждого кода клавиши, который вы можете разместить на панели навигации, а вместо этого позволяет вам выбрать один из 6 значков:

круг, плюс, минус, левый, верно, и меню.

Поскольку мы выяснили, как вручную устанавливать коды клавиш из команд оболочки, мы также хотели выяснить, какие возможности значков доступны. Сначала мы обнаружили, что две клавиши панели навигации определены как два системных свойства в разделе Настройки. Безопасный класс. Эти два свойства называются sysui_nav_bar_left и sysui_nav_bar_right, что соответствует левой клавише панели навигации и правой клавише панели навигации соответственно. Свойства принимают строковое значение, одно из следующих: clipboard, menu_ime, или key(KEYCODE_KEY:ICON_RESOURCE).

Используя тестовое устройство Google Pixel под управлением Android O Developer Preview, мы обнаружили, что 6 значков показанные по умолчанию, соответствуют конкретным ресурсам контента, содержащимся в SystemUI, представленным УРИ.

  1. com.android.systemui/2131230944 (круг)
  2. com.android.systemui/2131230848 (плюс)
  3. com.android.systemui/2131231002 (минус)
  4. com.android.systemui/2131230907 (левый)
  5. com.android.systemui/2131231004 (верно)
  6. com.android.systemui/2131230913 (меню)

Поскольку эти значения были взяты из Google Pixel, возможно, эти ресурсы значков не будут одинаковыми на других устройствах Google, на которых установлена ​​предварительная версия Android O Developer Preview. Но поскольку ресурс значка представляет собой URI контента, мы можем заменить его схемой URI файла, чтобы указать на него. любой значок, хранящийся на нашем устройстве.

Как установить собственные значки панели навигации в Android O

URI файла выглядит следующим образом:

file:///storage/emulated/0/PATH/TO/FILE

Объединив это с нашими знаниями о настройке пользовательских кодов клавиш, приведенными выше, мы теперь можем установить любое произвольное изображение в качестве значка, который будет отображаться на панели навигации. Например, если я хочу установить левую клавишу панели навигации на KEYCODE_DPAD_DOWN (#20) с пользовательским значком стрелки вниз, сохраненным как down.png, и моей правой клавишей панели навигации для KEYCODE_DPAD_UP (#19) с пользовательским значком стрелки вверх, сохраненным как up.png, оба значка хранятся в корне моего внутреннего хранилища, мои команды будут выглядеть следующим образом:

settings put secure sysui_nav_bar_left key(20:file:///storage/emulated/0/down.png)
settings put secure sysui_nav_bar_right key(19:file:///storage/emulated/0/up.png)

Вы можете ввести эти команды, используя оболочку ADB или предоставив WRITE_SECURE_SETTINGS Разрешение SecureTask а затем использовать Tasker для запуска изменений панели навигации в зависимости от определенных условий, как я описал в своих предыдущих руководствах (и также продемонстрирую в другом руководстве).

Как получить собственные значки для панели навигации

Конечно, учитывая размер вашей навигационной панели, вы не можете просто разместить любое изображение, скачанное из Интернета. Изображение должно быть правильного размера, иначе оно будет либо слишком маленьким, либо, скорее всего, слишком раздутым. Получение собственного изображения нужного размера может оказаться непростой задачей, если у вас еще нет опыта работы с PhotoShop или другое программное обеспечение для обработки изображений, но, к счастью, есть веб-сайты, предлагающие множество бесплатных значков, которые мы можем использовать.

Первое, что вам нужно сделать, это определить показатели дисплея вашего устройства, которые вы, возможно, уже знаете, но если вы этого не знаете, вы можете поищи это на Material.io. Далее вам нужно будет сопоставить плотность вашего дисплея с Справочная таблица значков чтобы определить, какой размер значков вам понадобится. Наконец, воспользуйтесь бесплатным база данных значков чтобы загрузить иконку, которую вы ищете, в нужном размере.

Обязательно сохраните значки, которые вы будете использовать, в определенной папке, например /NavIcons, и назовите значки простыми именами, на которые можно легко ссылаться в своих командах.


Мы надеемся, что этот урок окажется для вас полезным! Лично для меня одним из главных недостатков настройщика панели навигации была невозможность выбрать собственные значки для навигационных клавиш, чтобы я всегда сразу знал, что делают мои навигационные клавиши. Но теперь, когда мы выяснили, как разместить наши собственные ключи и настраиваемые значки в наших условиях, мы можем начать реально использовать нашу панель навигации.