Comment ajouter des icônes personnalisées à la barre de navigation dans Android O

Un tutoriel sur la façon d'ajouter des icônes personnalisées de votre choix à la barre de navigation dans Android O, afin que vous sachiez toujours ce que représente votre clé personnalisée.

Si vous avez suivi notre couverture d'Android O, alors vous avez peut-être vu nos tutoriels sur la façon de modifier la barre de navigation pour basculer en mode image dans l'image, activer touches de contrôle multimédia pendant la lecture de musique, et aujourd'hui comment ajouter boutons suivant/précédent pour parcourir rapidement vos e-mails. Les utilisations possibles d'un barre de navigation personnalisable sont énormes, et nos trois premiers tutoriels ne font qu’effleurer la surface. Mais même si nous avons quelques didacticiels utiles à partager avec nos lecteurs, il y a une chose que nous avons dû aborder avant de pouvoir passer à nos prochains didacticiels: comment ajouter des icônes personnalisées aux touches de la barre de navigation dans Android O.

Le nouveau personnalisateur de barre de navigation d'Android O, accessible via SystemUI Tuner, vous permet de définir un code clé sur une touche de navigation. (Rappel: pour accéder à SystemUI Tuner, vous devez dérouler la barre d'état et appuyer longuement sur l'icône d'engrenage en haut à droite jusqu'à ce que vous voyiez un message toast vous indiquant que SystemUI Le tuner est désormais accessible.) Parce qu'il y a tellement de codes clés, Android O ne propose pas d'icône pour chaque code clé que vous pouvez placer sur la barre de navigation, mais vous permet à la place de sélectionner parmi 6 icônes:

cercle, plus, moins, gauche, droite, et menu.

Depuis que nous avons compris comment définir manuellement les codes clés à partir des commandes shell, nous voulions également déterminer quelles possibilités d'icônes étaient disponibles. Nous avons d'abord découvert que les deux touches de la barre de navigation sont définies comme deux propriétés système sous le Paramètres. Classe sécurisée. Ces deux propriétés sont nommées sysui_nav_bar_left et sysui_nav_bar_right, correspondant respectivement à la touche gauche de la barre de navigation et à la touche droite de la barre de navigation. Les propriétés prennent une valeur de chaîne, l'une des deux clipboard, menu_ime, ou key(KEYCODE_KEY:ICON_RESOURCE).

À l'aide d'un appareil de test Google Pixel exécutant Android O Developer Preview, nous avons découvert que les 6 icônes affichés par défaut correspondent à des ressources de contenu particulières contenues dans SystemUI, représentées par un URI.

  1. com.android.systemui/2131230944 (cercle)
  2. com.android.systemui/2131230848 (plus)
  3. com.android.systemui/2131231002 (moins)
  4. com.android.systemui/2131230907 (gauche)
  5. com.android.systemui/2131231004 (droite)
  6. com.android.systemui/2131230913 (menu)

Étant donné que ces valeurs ont été extraites de Google Pixel, il est possible que ces ressources d'icônes ne soient pas les mêmes sur d'autres appareils Google exécutant Android O Developer Preview. Mais comme la ressource icône est un URI de contenu, nous pouvons la remplacer par un schéma d'URI de fichier vers lequel pointer. toute icône stockée sur notre appareil.

Comment définir des icônes de barre de navigation personnalisées dans Android O

L'URI d'un fichier ressemble à ceci :

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

En combinant cela avec nos connaissances sur la définition de codes clés personnalisés ci-dessus, nous pouvons désormais définir n'importe quelle image arbitraire comme icône à afficher dans la barre de navigation. Par exemple, si je souhaite définir la touche gauche de la barre de navigation sur KEYCODE_DPAD_DOWN (#20) avec une icône de flèche vers le bas personnalisée enregistrée sous down.png et ma touche de barre de navigation droite pour KEYCODE_DPAD_UP (#19) avec une icône de flèche vers le haut personnalisée enregistrée sous up.png, les deux icônes stockées à la racine de ma mémoire interne, mes commandes ressembleraient à celles-ci :

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)

Vous pouvez saisir ces commandes à l'aide d'un shell ADB ou en accordant le WRITE_SECURE_SETTINGS permission a Tâche sécurisée puis utiliser Tasker pour déclencher des modifications de la barre de navigation en fonction de certaines conditions, comme je l'ai décrit dans mes didacticiels précédents (et je le présenterai également dans un autre didacticiel).

Comment obtenir des icônes personnalisées pour votre barre de navigation

Bien entendu, étant donné la taille de votre barre de navigation, vous ne pouvez pas simplement placer n'importe quelle image que vous téléchargez sur Internet. L’image doit être de la bonne taille, sinon elle paraîtra trop petite ou très probablement trop agrandie. Obtenir votre propre image à la bonne taille peut être un défi si vous n'avez pas déjà d'expérience avec PhotoShop ou d'autres logiciels de manipulation d'images, mais heureusement, il existe des sites Web qui proposent de nombreuses icônes gratuites que nous pouvons utiliser.

La première chose que vous devrez faire est de déterminer les paramètres d'affichage de votre appareil, ce que vous connaissez peut-être déjà, mais si ce n'est pas le cas, vous pouvez recherchez-le sur Material.io. Ensuite, vous devrez corréler votre densité d'affichage avec un tableau de référence des icônes pour déterminer la taille des icônes dont vous aurez besoin. Enfin, utilisez le logiciel gratuit base de données d'icônes pour télécharger l'icône que vous recherchez dans la bonne taille.

Assurez-vous d'enregistrer les icônes que vous utiliserez dans un dossier particulier tel que /NavIcons, et nommez les icônes de manière simple que vous pourrez facilement référencer dans vos commandes.


Nous espérons que ce tutoriel vous sera utile! Pour moi, personnellement, l'un de mes principaux problèmes avec le personnalisateur de la barre de navigation était l'incapacité de sélectionner des icônes personnalisées pour les touches de navigation afin que je sache toujours immédiatement ce que font mes touches de navigation. Mais maintenant que nous avons compris comment placer nos propres clés personnalisées et icônes personnalisées selon nos propres conditions, nous pouvons commencer à réellement utiliser notre barre de navigation.