Cómo agregar íconos personalizados a la barra de navegación en Android O

Un tutorial sobre cómo agregar íconos personalizados de su elección a la barra de navegación en Android O, para que siempre sepa qué representa su clave personalizada.

Si has estado siguiendo nuestra cobertura de Android O, entonces es posible que hayas visto nuestros tutoriales sobre cómo modificar la barra de navegación para alternar el modo imagen en imagen, permitir Teclas de control multimedia mientras reproduces música., y hoy como agregar Botones de avance/anterior para navegar rápidamente a través de sus correos electrónicos. Los posibles usos de un barra de navegación personalizable son enormes, y nuestros primeros tres tutoriales sólo raspan la superficie. Pero si bien tenemos un par de tutoriales más útiles para compartir con nuestros lectores, hay una cosa que teníamos que cubrir antes de poder pasar a nuestros siguientes tutoriales: cómo agregar íconos personalizados a las teclas de la barra de navegación en Android O.

El nuevo personalizador de la barra de navegación de Android O, al que se puede acceder a través de SystemUI Tuner, le permite configurar un código clave para una tecla de navegación. (Recordatorio: para acceder a SystemUI Tuner, debe desplegar la barra de estado y mantener presionado el ícono de ajustes en la parte superior derecha hasta que vea un mensaje de brindis que le indica que SystemUI Ahora se puede acceder al sintonizador.) Debido a que hay tantos códigos clave, Android O no ofrece un ícono para cada código clave que puede colocar en la barra de navegación, sino que le permite seleccionar entre 6 íconos:

círculo, más, menos, izquierda, bien, y menú.

Dado que descubrimos cómo configurar manualmente códigos clave desde los comandos del shell, también queríamos descubrir qué posibilidades de íconos estaban disponibles. Primero descubrimos que las dos teclas de la barra de navegación están definidas como dos propiedades del sistema bajo el Ajustes. clase segura. Estas dos propiedades se denominan sysui_nav_bar_left y sysui_nav_bar_right, correspondiente a la tecla de la barra de navegación izquierda y a la tecla de la barra de navegación derecha respectivamente. Las propiedades toman un valor de cadena, uno de cualquiera de los dos clipboard, menu_ime, o key(KEYCODE_KEY:ICON_RESOURCE).

Usando un dispositivo Google Pixel de prueba que ejecuta Android O Developer Preview, descubrimos que los 6 íconos mostrados de forma predeterminada corresponden a recursos de contenido particulares contenidos en SystemUI, representados por un URI.

  1. com.android.systemui/2131230944 (círculo)
  2. com.android.systemui/2131230848 (más)
  3. com.android.systemui/2131231002 (menos)
  4. com.android.systemui/2131230907 (izquierda)
  5. com.android.systemui/2131231004 (bien)
  6. com.android.systemui/2131230913 (menú)

Dado que estos valores se obtuvieron de Google Pixel, es posible que estos recursos de íconos no sean los mismos en otros dispositivos de Google que ejecutan Android O Developer Preview. Pero dado que el recurso del icono es un URI de contenido, podemos reemplazarlo con un esquema de URI de archivo al que apuntar. cualquier icono almacenado en nuestro dispositivo.

Cómo configurar iconos de barra de navegación personalizados en Android O

Un URI de archivo se parece al siguiente:

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

Combinando esto con nuestro conocimiento sobre cómo configurar códigos clave personalizados arriba, ahora podemos configurar cualquier imagen arbitraria como nuestro ícono que se mostrará en la barra de navegación. Por ejemplo, si quiero configurar la tecla de la barra de navegación izquierda en KEYCODE_DPAD_DOWN (#20) con un ícono de flecha hacia abajo personalizado guardado como down.png y mi tecla de la barra de navegación derecha para KEYCODE_DPAD_UP (#19) con un ícono de flecha hacia arriba personalizado guardado como up.png, ambos íconos almacenados en la raíz de mi almacenamiento interno, mis comandos se verían así:

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)

Puede ingresar estos comandos usando un shell ADB o otorgando la WRITE_SECURE_SETTINGS permiso para tarea segura y luego usar Tasker para activar cambios en la barra de navegación según ciertas condiciones, como lo describí en mis tutoriales anteriores (y también lo mostraré en otro tutorial).

Cómo obtener iconos personalizados para tu barra de navegación

Por supuesto, dado el tamaño de su barra de navegación, no puede simplemente colocar cualquier imagen que descargue de Internet. La imagen debe tener el tamaño correcto; de lo contrario, parecerá demasiado pequeña o muy probablemente demasiado ampliada. Obtener su propia imagen en el tamaño adecuado puede ser un desafío si aún no tiene experiencia con PhotoShop o otro software de manipulación de imágenes, pero afortunadamente existen sitios web que ofrecen muchos íconos gratuitos que podemos usar.

Lo primero que deberá hacer es determinar las métricas de visualización de su dispositivo, algo que quizás ya sepa, pero en caso de que no lo sepa, puede búscalo en Material.io. A continuación, deberá correlacionar la densidad de visualización con un tabla de referencia de iconos para determinar qué tamaño de íconos necesitará. Por último, utiliza el programa gratuito base de datos de iconos para descargar el ícono que estás buscando en el tamaño correcto.

Asegúrese de guardar los íconos que usará en una carpeta particular, como /NavIcons, y asigne un nombre simple a los íconos a los que pueda hacer referencia fácilmente en sus comandos.


¡Esperamos que encuentres útil este tutorial! Para mí, personalmente, uno de mis mayores escrúpulos con el personalizador de la barra de navegación fue la imposibilidad de seleccionar íconos personalizados para las teclas de navegación, de modo que siempre supiera de inmediato qué están haciendo mis teclas de navegación. Pero ahora que hemos descubierto cómo colocar nuestras propias claves personalizadas y iconos personalizados según nuestras propias condiciones, podemos comenzar a hacer un uso real de nuestra barra de navegación.