Le sélecteur d'emoji est une solution d'interface utilisateur à la fois moderne et facile à utiliser, avec des emoji à jour. Les utilisateurs peuvent parcourir et sélectionner les emoji et leurs variantes, ou choisir l'un des emoji récemment utilisés.
Grâce à cette bibliothèque, les applications provenant de sources diverses peuvent offrir une expérience d'emoji inclusive et unifiée à leurs utilisateurs, sans que les développeurs n'aient à créer et à gérer leur propre sélecteur d'emoji à partir de zéro.
Fonctionnalités
Emoji à jour
Les emoji récemment sortis sont inclus de manière sélective dans le sélecteur d'emoji. La bibliothèque du sélecteur d'emoji est compatible avec plusieurs versions d'Android et appareils.
Variantes persistantes
Appuyez de manière prolongée sur un emoji pour afficher un menu de variantes, telles que différents sexes ou différentes carnations. La variante que vous choisissez est enregistrée dans le sélecteur d'emoji, et la dernière variante sélectionnée est utilisée dans le panneau principal.
Grâce à cette fonctionnalité, les utilisateurs peuvent envoyer leurs variantes d'emoji préférées en un seul geste.
![variantes d'emoji](https://developer.android.com/static/images/develop/ui/views/text-and-emoji/emoji-variants.png?authuser=8&hl=fr)
Emoji récents
![emoji récent](https://developer.android.com/static/images/develop/ui/views/text-and-emoji/recent-emoji.png?authuser=8&hl=fr)
Le RecentEmojiProvider
fournit les emoji dans la catégorie Récemment utilisés. La bibliothèque dispose d'un fournisseur d'emoji récents par défaut qui répond au cas d'utilisation le plus courant:
- Tous les emoji sélectionnés sont enregistrés pour l'application dans les préférences partagées.
- Le sélecteur affiche au maximum trois lignes d'emoji sélectionnés, dédupliqués, dans l'ordre chronologique inverse.
Si ce comportement par défaut est suffisant, vous n'avez pas besoin d'utiliser setRecentEmojiProvider()
.
Vous devrez peut-être personnaliser le comportement du fournisseur. Voici quelques scénarios courants:
- Vous souhaitez stocker différents emoji sélectionnés par compte utilisateur.
- Vous souhaitez utiliser un espace de stockage de données autre que les préférences partagées.
- Vous souhaitez afficher les emoji récents triés par fréquence.
Vous pouvez ensuite implémenter l'interface RecentEmojiProvider
et la définir à l'aide de setRecentEmojiProvider()
.
Compatibilité avec EmojiCompat
Si cette option est activée, une instance EmojiCompat
est utilisée dans le sélecteur d'emoji pour afficher autant d'emoji que possible. Toutefois, le sélecteur d'emoji ne nécessite pas EmojiCompat
.
Conditions préalables
Votre application doit cibler Android 5.0 (niveau d'API 21) ou version ultérieure.
Utiliser la bibliothèque
Importez
androidx.emoji2:emojipicker:$version
dans le fichierbuild.gradle
de votre application.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Gonflez la vue du sélecteur d'emoji, et définissez éventuellement
emojiGridRows
etemojiGridColumns
.- Le nombre par défaut de
emojiGridColumns
est 9. - Le nombre de lignes est calculé en fonction de la hauteur de la vue parent et de la valeur de
emojiGridColumns
. - Utilisez une valeur flottante pour
emojiGridRows
afin d'indiquer que l'utilisateur peut faire défiler l'écran vers le bas pour afficher d'autres emoji.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
val emojiPickerView = EmojiPickerView(context).apply { emojiGridColumns = 15 layoutParams = ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) } findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
- Le nombre par défaut de
Utilisez
setOnEmojiPickedListener()
pour ajouter les emoji sélectionnés à une vue. Par exemple, pour ajouter à unEditText
, procédez comme suit:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Vous pouvez également définir
RecentEmojiProvider
. Consultez un exemple d'application pour voir un exemple d'implémentation.Personnalisez les styles (facultatif). Créez votre propre style pour remplacer les attributs de thème courants et appliquer le style à
EmojiPickerView
. Par exemple, le fait de remplacercolorControlNormal
modifie la couleur de l'icône de catégorie.<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
Application exemple
L'application exemple de sélecteur d'emoji présente des cas d'utilisation de base ainsi que les scénarios supplémentaires suivants:
- Nouveau calcul de la mise en page lorsque
emojiGridRows
ouemojiGridColumns
sont réinitialisés. - Fournisseur d'emoji récent remplacé qui effectue le tri par fréquence.
- Personnalisation supplémentaire du style.