Выбор эмодзи

Сборщик смайликов-это решение пользовательского интерфейса, которое предлагает современный вид и ощущение, обновленные смайлики и простоту использования. Пользователи могут просматривать и выбрать смайлики и их варианты или выбрать из своих недавно используемых смайликов.

Рисунок 1. Средство выбора эмодзи

Благодаря этой библиотеке приложения из различных источников могут предоставить своим пользователям инклюзивный и унифицированный опыт использования смайлов, при этом разработчикам не придется создавать и поддерживать собственный инструмент выбора смайлов с нуля.

Функции

Актуальные смайлы

Недавно выпущенные смайлики избирательно включены в сборщик смайликов. Библиотека сборов смайликов совместима с несколькими версиями и устройствами Android.

Прикрепленные варианты

Длинные смайлики для отображения меню вариантов, таких как различные полы или тона кожи. Вариант, который вы выберете, сохраняется в сборщике смайликов, а последний выбранный вариант используется на главной панели.

С помощью этой функции пользователи могут отправлять свои предпочтительные варианты смайликов с одним краном.

варианты смайликов
Рисунок 2. Варианты эмодзи

Недавние смайлики

Недавние смайлики
Рисунок 3. Недавние смайлики

RecentEmojiProvider отвечает за предоставление смайликов в недавно используемой категории. У библиотеки есть недавний поставщик эмодзи, который удовлетворяет наиболее распространенным варианту использования:

  • Все выбранные смайлики сохраняются в приложении в общих предпочтениях.
  • Сборщик отображает не более 3 рядов выбранных смайликов, Deduped, в обратном хронологическом порядке.

Если этого поведения по умолчанию достаточно, вам не нужно использовать setRecentEmojiProvider() .

Однако вам может потребоваться настроить поведение поставщика. Вот некоторые распространенные сценарии:

  • Вы хотите хранить разные выбранные смайлы для каждой учетной записи пользователя.
  • Вы хотите использовать хранилище данных, отличное от общих настроек.
  • Вы хотите отображать последние смайлы, отсортированные по частоте.

Затем вы можете реализовать интерфейс RecentEmojiProvider и установить его с помощью setRecentEmojiProvider() .

Совместимость с EmojiCompat

Если этот параметр включен, экземпляр EmojiCompat используется в средстве выбора эмодзи для отображения как можно большего количества смайлов. Однако для Emoji Picker не требуется EmojiCompat .

Предварительные условия

Ваше приложение должно быть ориентировано на Android 5.0 (уровень API 21) или выше.

Используйте библиотеку

  1. Импортируйте androidx.emoji2:emojipicker:$version в файл build.gradle вашего приложения.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Расширьте представление 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)
    
  3. Используйте setOnEmojiPickedListener() чтобы добавить выбранные смайлы в представление. Например, чтобы добавить к EditText , выполните следующие действия:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. При необходимости установите RecentEmojiProvider , пример реализации см. в примере приложения.

  5. При желании настроить стили. Создайте свой собственный стиль, чтобы переопределить общие атрибуты темы, и примените его к 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 .
  • Переопределенный поставщик недавних смайлов, который сортирует их по частоте.
  • Дополнительная настройка стиля.