El selector de emojis es una solución de IU que ofrece un aspecto moderno, emojis actualizados y facilidad de uso. Los usuarios pueden explorar y seleccionar emojis y sus variantes, o bien elegir entre los emojis que usaron recientemente.
Con esta biblioteca, las apps de diversas fuentes pueden proporcionar una experiencia de emojis inclusiva y unificada a sus usuarios sin que los desarrolladores tengan que compilar y mantener su propio selector de emojis desde cero.
Funciones
El selector de emojis tiene las siguientes funciones.
Emojis actualizados
Los emojis que se lanzaron recientemente se incluyen de forma selectiva en el selector de emojis. La biblioteca del selector de emojis es compatible con múltiples versiones y dispositivos Android.
Variantes fijas
Mantén presionado un emoji para mostrar un menú de variantes, como diferentes géneros o tonos de piel. La variante que elijas se guardará en el selector de emojis, y la última variante seleccionada se usará en el panel principal.
Con esta función, los usuarios pueden enviar sus variantes de emojis preferidas con un solo toque.
Emojis recientes
El RecentEmojiProvider se encarga de proporcionar emojis en la categoría Usados recientemente. La biblioteca tiene un proveedor de emojis recientes predeterminado que satisface el caso de uso más común:
- Todos los emojis seleccionados se guardan por app en las preferencias compartidas.
- El selector muestra, como máximo, tres filas de emojis seleccionados, sin duplicados, en orden cronológico inverso.
Si este comportamiento predeterminado es suficiente, no necesitas usar
setRecentEmojiProvider().
Sin embargo, es posible que debas personalizar el comportamiento del proveedor. Estos son algunos casos comunes:
- Quieres almacenar diferentes emojis seleccionados por cuenta de usuario.
- Quieres usar un almacén de datos que no sea de preferencias compartidas.
- Quieres mostrar los emojis recientes ordenados por frecuencia.
Luego, puedes implementar la interfaz RecentEmojiProvider y configurarla con setRecentEmojiProvider().
Selector de dirección
A partir de Emoji 15.1, el selector de emojis admite emojis bidireccionales. Los usuarios pueden presionar el selector bidireccional para alternar entre las versiones de emojis que miran hacia la izquierda y hacia la derecha.

Figura 4: Emoji bidireccional que mira hacia la izquierda.

Figura 5: Emoji bidireccional orientado hacia la derecha.
Selector de emojis de varias personas
Los usuarios pueden mantener presionados los emojis de parejas para ver las opciones de emojis de varias personas.

Figura 6: Mantén presionada una pareja de emojis para ver las selecciones de emojis de varias personas.

Figura 7: Selecciona un emoji de persona para la mitad izquierda.

Figura 8: Selecciona la mitad derecha de un emoji de persona.
Cuando el usuario selecciona la mitad izquierda o derecha de una pareja de emojis, el selector muestra una vista previa en la parte inferior derecha, como se muestra en las figuras 7 y 8. Después de seleccionar ambas mitades de la pareja de emojis, los usuarios pueden seleccionar la vista previa para componer la pareja de emojis personalizada.
Compatibilidad con EmojiCompat
Si se habilita, se usa una instancia de EmojiCompat en el selector de emojis para renderizar la mayor cantidad posible de emojis. Sin embargo, el selector de emojis no requiere EmojiCompat.
Requisitos previos
Tu app debe tener como objetivo Android 5.0 (nivel de API 21) o una versión posterior.
Cómo usar la biblioteca
Importa
androidx.emoji2:emojipicker:$versionen el archivobuild.gradlede tu app.dependencies { implementation "androidx.emoji2:emojipicker:$version" }Expande la vista del selector de emojis y, de manera opcional, establece
emojiGridRowsyemojiGridColumns.- La cantidad predeterminada de
emojiGridColumnses 9. - El recuento de filas se calcula en función de la altura de la vista parental y el valor de
emojiGridColumns. - Usa un valor de número de punto flotante para
emojiGridRowspara indicar que el usuario puede desplazarse para ver más emojis.
<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)- La cantidad predeterminada de
Usa
setOnEmojiPickedListener()para agregar el emoji seleccionado a una vista. Por ejemplo, para agregar unEditText, haz lo siguiente:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }De manera opcional, establece
RecentEmojiProvider. Consulta la app de ejemplo para ver una implementación de ejemplo.Personaliza los estilos (opcional). Crea tu propio estilo para anular los atributos de tema comunes y aplícalo a
EmojiPickerView. Por ejemplo, anularcolorControlNormalcambia el color del ícono de la categoría.<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" />
App de ejemplo
En la app de ejemplo del selector de emojis, se muestran casos de uso básicos junto con las siguientes situaciones adicionales:
- Recálculo del diseño cuando se restablecen
emojiGridRowsoemojiGridColumns - Es un proveedor de emojis recientes anulado que ordena por frecuencia.
- Personalización de estilo adicional