Emoji Picker — это решение пользовательского интерфейса, которое предлагает современный внешний вид, актуальные смайлы и простоту использования. Пользователи могут просматривать и выбирать смайлы и их варианты или выбирать из недавно использованных смайлов.
Благодаря этой библиотеке приложения из различных источников могут предоставить своим пользователям инклюзивный и унифицированный опыт использования смайлов, при этом разработчикам не придется создавать и поддерживать собственный инструмент выбора смайлов с нуля.
Функции
Средство выбора эмодзи имеет следующие функции.
Актуальные смайлы
Недавно выпущенные смайлы выборочно включаются в средство выбора смайлов. Библиотека Emoji Picker совместима с несколькими версиями Android и устройствами.
Прикрепленные варианты
Нажмите и удерживайте смайлик, чтобы отобразить меню вариантов, таких как разные полы или оттенки кожи. Выбранный вами вариант сохраняется в средстве выбора эмодзи, а последний выбранный вариант используется на главной панели.
Благодаря этой функции пользователи могут отправлять предпочтительные варианты смайлов одним нажатием.
Недавние смайлы
RecentEmojiProvider
отвечает за предоставление смайлов в категории «Недавно использованные» . В библиотеке есть поставщик недавних смайлов по умолчанию, который удовлетворяет наиболее распространенному сценарию использования:
- Все выбранные смайлы сохраняются для каждого приложения в общих настройках.
- Средство выбора отображает не более трех строк выбранных смайлов с дедупликацией в обратном хронологическом порядке.
Если этого поведения по умолчанию достаточно, вам не нужно использовать setRecentEmojiProvider()
.
Однако вам может потребоваться настроить поведение поставщика. Вот некоторые распространенные сценарии:
- Вы хотите хранить разные выбранные смайлы для каждой учетной записи пользователя.
- Вы хотите использовать хранилище данных, отличное от общих настроек.
- Вы хотите отображать последние смайлы, отсортированные по частоте.
Затем вы можете реализовать интерфейс RecentEmojiProvider
и установить его с помощью setRecentEmojiProvider()
.
Селектор направления
Начиная с Emoji 15.1 , средство выбора эмодзи поддерживает двунаправленные эмодзи. Пользователи могут нажать на двунаправленный переключатель, чтобы переключаться между левосторонней и правосторонней версиями смайлов.
Выбор эмодзи для нескольких человек
Пользователи могут коснуться и удерживать пары смайлов, чтобы открыть выбор смайлов, выбранных несколькими людьми.
Когда пользователь выбирает левую или правую половину эмодзи пары эмодзи, селектор отображает предварительный просмотр в правом нижнем углу, как показано на рисунках 7 и 8. После выбора обеих половин пары эмодзи пользователи могут выбрать предварительный просмотр, чтобы составить собственную пару смайлов.
Совместимость с EmojiCompat
Если этот параметр включен, экземпляр EmojiCompat
используется в средстве выбора эмодзи для отображения как можно большего количества смайлов. Однако для Emoji Picker не требуется EmojiCompat
.
Предварительные условия
Ваше приложение должно быть ориентировано на Android 5.0 (уровень API 21) или выше.
Используйте библиотеку
Импортируйте
androidx.emoji2:emojipicker:$version
в файлbuild.gradle
вашего приложения.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Расширьте представление Emoji Picker и при необходимости установите
emojiGridRows
иemojiGridColumns
.- Число
emojiGridColumns
по умолчанию — 9. - Количество строк рассчитывается на основе высоты родительского представления и значения
emojiGridColumns
. - Используйте значение с плавающей запятой для
emojiGridRows
, чтобы указать, что пользователь может прокручивать, чтобы найти больше смайликов.
<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)
- Число
Используйте
setOnEmojiPickedListener()
чтобы добавить выбранные смайлы в представление. Например, чтобы добавить кEditText
, выполните следующие действия:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
При необходимости установите
RecentEmojiProvider
, пример реализации см. в примере приложения.При желании настроить стили. Создайте свой собственный стиль, чтобы переопределить общие атрибуты темы, и примените его к
EmojiPickerView
. Например, переопределениеcolorControlNormal
изменяет цвет значка категории.<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" />
Пример приложения
Пример приложения Emoji Picker демонстрирует основные варианты использования, а также следующие дополнительные сценарии:
- Перерасчет макета при сбросе
emojiGridRows
илиemojiGridColumns
. - Переопределенный поставщик недавних смайлов, который сортирует их по частоте.
- Дополнительная настройка стиля.