El Selector de emojis es una solución de IU que ofrece una apariencia moderna, emojis actualizados y facilidad de uso. Pueden explorar y seleccionar emojis, así como sus variantes, o elegir uno de los 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
Emojis actualizados
Los emojis nuevos se incluyen de forma selectiva en el Selector de emojis. La biblioteca del selector de emojis es compatible con varias versiones y dispositivos de Android.
Variantes fijas
Mantén presionado un emoji para que aparezca 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.
![variantes de emojis](https://developer.android.com/static/images/develop/ui/views/text-and-emoji/emoji-variants.png?authuser=6&hl=es)
Emojis recientes
![emoji reciente](https://developer.android.com/static/images/develop/ui/views/text-and-emoji/recent-emoji.png?authuser=6&hl=es)
RecentEmojiProvider
se encarga de proporcionar emojis en la categoría Usados recientemente. La biblioteca tiene un proveedor de emojis reciente 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, 3 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 almacenamiento de datos distinto de las preferencias compartidas.
- Quieres mostrar emojis recientes ordenados por frecuencia.
Luego, puedes implementar la interfaz RecentEmojiProvider
y configurarla con setRecentEmojiProvider()
.
Compatibilidad con EmojiCompat
Si se habilita, se usa una instancia de EmojiCompat
en el selector de emojis para renderizar tantos emojis como sea posible. Sin embargo, el selector de emojis no requiere EmojiCompat
.
Requisitos previos
Tu app debe orientarse a Android 5.0 (nivel de API 21) o versiones posteriores.
Cómo usar la biblioteca
Importa
androidx.emoji2:emojipicker:$version
en el archivobuild.gradle
de tu app.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Aumenta la vista del selector de emojis y, de manera opcional, configura
emojiGridRows
yemojiGridColumns
.- El número predeterminado de
emojiGridColumns
es 9. - El recuento de filas se calcula en función de la altura de la vista superior y el valor de
emojiGridColumns
. - Usa un valor flotante en
emojiGridRows
para indicar que el usuario puede desplazarse hacia abajo y 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)
- El número predeterminado de
Usa
setOnEmojiPickedListener()
para agregar los emojis seleccionados a una vista. Por ejemplo, para adjuntar a unEditText
, haz lo siguiente:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
De manera opcional, configura
RecentEmojiProvider
; consulta la app de ejemplo para ver una implementación de ejemplo.Personaliza los diseños (opcional). Crea tu propio diseño para anular los atributos comunes del tema y aplicar el estilo a
EmojiPickerView
. Por ejemplo, si se anulacolorControlNormal
, se cambia el color del ícono de 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
La app de ejemplo del selector de emojis muestra casos de uso básicos junto con las siguientes situaciones adicionales:
- Nuevo cálculo de diseño cuando se restablecen
emojiGridRows
oemojiGridColumns
- Un proveedor de emojis reciente anulado que ordena por frecuencia.
- Personalización de estilo adicional.