Эмодзи2
| Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
|---|---|---|---|---|
| 10 сентября 2025 г. | 1.6.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Emoji2, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
классный
dependencies { def emoji2_version = "1.6.0" implementation "androidx.emoji2:emoji2:$emoji2_version" implementation "androidx.emoji2:emoji2-views:$emoji2_version" implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version" }
Котлин
dependencies { val emoji2_version = "1.6.0" implementation("androidx.emoji2:emoji2:$emoji2_version") implementation("androidx.emoji2:emoji2-views:$emoji2_version") implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Emoji2 Emojipicker Версия 1.0
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0 . Версия 1.5.0 содержит следующие изменения .
Важные изменения с версии 1.4.0
- Поддержка эмодзи 15.1 и двунаправленного интерфейса селектора эмодзи. Простое нажатие на двунаправленный переключатель позволяет переключаться между левой и правой версиями эмодзи.
- Поддержка выбора эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи с парой открывает селектор эмодзи с несколькими людьми для нулевого состояния. При нажатии на левую половину эмодзи предварительный просмотр эмодзи в правом нижнем углу соответствующим образом обновляется. При выборе обеих половин эмодзи предварительный просмотр эмодзи в правом нижнем углу отображает весь эмодзи, который можно ввести.
Версия 1.0.0-альфа03
8 марта 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие изменения.
Исправления ошибок
- Удалены ненужные ресурсы и уменьшен размер библиотеки примерно на 0,3М.
Версия 1.0.0-альфа02
22 февраля 2023 г.
Выпущена androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие изменения.
Изменения API
- Добавлен новый API для клиентов Java, позволяющий предоставлять последние эмодзи. ( I39d10 )
Исправления ошибок
- Обновление ресурсов эмодзи для поддержки эмодзи 15.0 ( Ib4eb3 )
- При выборе эмодзи во всплывающем окне все идентичные эмодзи заменяются на выбранный эмодзи (кроме строки с последними эмодзи). Также озвучивается эмодзи при нажатии. ( I892c6 )
- Подождите, пока загрузится emojicompat, прежде чем отображать
EmojiPickerView. ( I29e03 )
Версия 1.0.0-альфа01
25 января 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие изменения.
Новые функции
- Представлен инструмент выбора эмодзи, обеспечивающий единообразный пользовательский интерфейс с новейшими эмодзи на устройствах и в приложениях OEM-производителей Android. Он обеспечивает поддержку новейших эмодзи и пользовательский интерфейс, включая варианты скинов и поддержку совместимых эмодзи.
Изменения API
- Представлен класс
EmojiPickerView, который предоставляет актуальные эмодзи в вертикально прокручиваемом виде с кликабельным горизонтальным заголовком. - Столбцы сетки выбора эмодзи можно задать с помощью атрибута XML
emojiGridColumnsили функцииsetEmojiGridColumns(). - Строки сетки выбора эмодзи можно задать с помощью атрибута XML
emojiGridRowsили функцииsetEmojiGridRows(). - Прослушиватель выбранных эмодзи можно установить с помощью
setOnEmojiPickedListener(), и прослушиватель будет уведомляться каждый раз, когда пользователь нажимает на любой эмодзи. - Поставщик последних эмодзи может быть предоставлен с помощью
setRecentEmojiProvider(). Это необязательная функция. Если поставщик последних эмодзи не задан, библиотека будет использовать поставщика последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные эмодзи будут сохранены на уровне приложения в общих настройках. 2) в окне выбора будет отображаться не более 3 строк выбранных эмодзи (без дубликатов) в обратном хронологическом порядке. - Введен класс
EmojiViewItem, который хранит отображаемые эмодзи и их варианты. - Представлен интерфейс
RecentEmojiProvider, который можно реализовать для предоставления списка недавно использованных эмодзи.recentEmojiProviderотвечает за предоставление эмодзи в категории «Недавно использованные».
Версия 1.6
Версия 1.6.0
10 сентября 2025 г.
Выпущен androidx.emoji2:emoji2-*:1.6.0 . Версия 1.6.0 содержит следующие изменения .
Важные изменения по сравнению с версией 1.5.0:
- Поддерживает эмодзи 16.0
- Добавьте суффикс «emoji» к описанию содержимого эмодзи.
Исправления ошибок
- Перемещение
minSdkпо умолчанию из API 21 в API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
Версия 1.6.0-rc01
13 августа 2025 г.
Выпущена androidx.emoji2:emoji2-*:1.6.0-rc01 . Версия 1.6.0-rc01 содержит следующие изменения .
Новые функции
- Реализована поддержка Emoji 16.0 и добавлен суффикс «emoji» к описанию контента.
Изменения API
- Удаление устаревших аннотаций
@RequiresApi(21)( Ic4792 ) - Удаление устаревших аннотаций
@RequiresApi(21)( I9103b )
Версия 1.6.0-beta01
2 июля 2025 г.
Выпущен androidx.emoji2:emoji2-*:1.6.0-beta01 . Версия 1.6.0-beta01 содержит следующие изменения .
Новые функции
- Поддержка обновлений Emoji 16.0
- Добавьте суффикс «emoji» к описанию контента, чтобы обеспечить единообразное поведение доступности во всех приложениях для выбора эмодзи.
Версия 1.6.0-альфа01
4 июня 2025 г.
Выпущен androidx.emoji2:emoji2-*:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит следующие изменения .
Новые функции
- Обновления данных Emoji 16.0 ( Ifc878 )
- Добавление суффикса «эмодзи» к описанию контента
Исправления ошибок
- Эта библиотека теперь использует аннотации JSpecify об отсутствии значений (nullness annotations) , которые являются типозависимыми. Разработчикам Kotlin следует использовать следующие аргументы компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict,-Xtype-enhancement-improvements-strict-mode( Id07e7 , b/326456246 ).
Версия 1.5
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0 . Версия 1.5.0 содержит следующие изменения .
Важные изменения с версии 1.4.0
- Поддержка эмодзи 15.1 и двунаправленного интерфейса селектора эмодзи. Простое нажатие на двунаправленный переключатель позволяет переключаться между левой и правой версиями эмодзи.
- Поддержка выбора эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи с парой открывает селектор эмодзи с несколькими людьми для нулевого состояния. При нажатии на левую половину эмодзи предварительный просмотр эмодзи в правом нижнем углу соответствующим образом обновляется. При выборе обеих половин эмодзи предварительный просмотр эмодзи в правом нижнем углу отображает весь эмодзи, который можно ввести.
Версия 1.5.0-rc01
21 августа 2024 г.
Выпущена androidx.emoji2:emoji2-*:1.5.0-rc01 . Версия 1.5.0-rc01 содержит следующие изменения .
Новые функции
- Поддержка эмодзи 15.1 и двунаправленного интерфейса селектора эмодзи. Простое нажатие на двунаправленный переключатель позволяет переключаться между левой и правой версиями эмодзи.
- Поддержка выбора эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи с парой открывает селектор эмодзи с несколькими людьми для нулевого состояния. При нажатии на левую половину эмодзи предварительный просмотр эмодзи в правом нижнем углу соответствующим образом обновляется. При выборе обеих половин эмодзи в предпросмотре отображается весь эмодзи, и пользователь может ввести его.
Исправления ошибок
- Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок с использованием AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( If6b4c , b/345472586 )
- Выбор и индикатор вкладок
EmojiPickerViewобновляются на один клик позже. ( 146b02 , b/288261054 ) - Выбор и индикатор вкладок
EmojiPickerViewнеисправны. ( 5e1f14 , b/273883688 )
Версия 1.5.0-beta01
10 июля 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-beta01 . Версия 1.5.0-beta01 содержит следующие изменения .
Новые функции
- Поддержка emoji 15.1 и двунаправленного интерфейса выбора emoji.
- Поддержка редизайна выбора нескольких оттенков кожи.
Исправления ошибок
- Выбор и индикатор вкладок
EmojiPickerViewобновляются на один клик позже. ( 146b02 , b/288261054 ) - Выбор и индикатор вкладок
EmojiPickerViewнеисправны. ( 5e1f14 , b/273883688 )
Версия 1.5.0-альфа01
13 декабря 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.5.0-alpha01 . Версия 1.5.0-alpha01 содержит следующие изменения.
Новые функции
-
emoji2-bundledсодержит обновленный шрифт эмодзи для поддержки Emoji 15.1.
Изменения API
- Добавьте исполнителей для управления потоком обратного вызова для
InitCallback. ( I32b67 ) -
BundledEmojiCompatConfigтеперь использует исполнитель для управления потоками загрузки. ( I00e81 )
Версия 1.4
Версия 1.4.0
9 августа 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0 . Версия 1.4.0 содержит следующие изменения.
Важные изменения с версии 1.3.0
- Представлена библиотека для выбора эмодзи. Подробнее см. в документации для разработчиков .
Версия 1.4.0-rc01
26 июля 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-rc01 . Версия 1.4.0-rc01 содержит следующие изменения.
Изменения API
- Ввести список
registerSource( Iae92f ) - Отзыв API Council:
TransitionManager.seekTo()переименован вcreateSeekController(). Пожалуйста, исправьте предыдущий комментарий о добавленииTransitionManager.seekTo()вTransitionManager.createSeekController(). ( Idbeb1 ) - Добавлен
ExerciseRouteResult, который не является суперклассом дляData,NoDataиConsentRequiredStates.ExerciseRouteдобавлен как отдельный класс, содержащий данные о местоположении маршрута. ( I22eed ) - Добавлен
PagerLayoutInfoс информацией, собранной после прохода измерения в Pager. Также добавлен PageInfo — информация об одной измеряемой странице в Pager. ( Iad003 , b/283098900 )
Исправления ошибок
- Мы обновили цвета для
Button,IconButtonиTextButtonв соответствии с дизайном Material3. Семантическая рольButton,IconButtonиTextButtonтеперь может быть переопределена с помощьюModifier.semantics. ( Ib2495 ) - Исправлен выбор вкладок и индикатор
EmojiPickerView, которые обновлялись на один клик позже. ( I4db04 ) -
FileNotFoundExceptionпри отображении окна выбора эмодзи ( I353e4 ) - Перехватите исключение
WindowManager.BadTokenExceptionпри использованииEmojiPickerView( I0a144 )
Версия 1.4.0-beta05
7 июня 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta05 . Версия 1.4.0-beta05 содержит следующие изменения.
Исправления ошибок
- Исправлена ошибка, появившаяся в версии 1.3, из-за которой
MetricsAffectingSpansтакие какRelativeSizeSpan, применялись дважды: один раз при компоновке текста и ещё раз внутриEmojiSpan.draw. В результате размер отрисовывался некорректно, что было заметно, если какой-либо из параметров размера текста изменялся в процессе компоновки. ( b/283208650 )
Версия 1.4.0-beta04
24 мая 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta04 . Версия 1.4.0-beta04 содержит следующие изменения.
В этом выпуске исправлена ошибка, существовавшая с версии 1.0, из-за которой представления с неосновным обработчиком вызывали исключение при попытке обновить области эмодзи после завершения загрузки шрифта. Обходного пути нет. Если вы столкнулись с этой ошибкой, пожалуйста, обновитесь до этой версии или более поздней.
Исправления ошибок
- Обратные вызовы инициализации
EmojiCompatтеперь будут использовать обработчик из каждого представления, учитывая представления, не находящиеся в основном потоке. ( Iccbcf )
Версия 1.4.0-beta03
10 мая 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta03 . Версия 1.4.0-beta03 содержит следующие изменения.
Исправления ошибок
- Исправлен сбой во всплывающем окне выбора эмодзи. ( 0acc8e )
- Вызвать ранние исключения в
EmojiCompat getEmojiStart/getEmojiEnd. ( 26177f )
Версия 1.4.0-beta02
19 апреля 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta02 . Версия 1.4.0-beta02 содержит следующие изменения.
Исправления ошибок
- Обновление базовых файлов lint ( Iaa212 )
Версия 1.4.0-beta01
5 апреля 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие изменения.
Новые функции
androidx.emoji2:emoji2-emojipicker
Emoji Picker — это пользовательский интерфейс с современным дизайном, актуальными эмодзи и простотой использования. Пользователи могут просматривать и выбирать эмодзи и их варианты, а также выбирать из недавно использованных. Благодаря этой библиотеке приложения от разных производителей оборудования могут предоставлять своим пользователям инклюзивный и унифицированный интерфейс работы с эмодзи, избавляя разработчиков от необходимости создавать и поддерживать собственный инструмент выбора эмодзи с нуля.
Актуальные эмодзи
Новые эмодзи появляются каждый год, и мы будем выборочно включать их в инструмент выбора эмодзи. Для обеспечения обратной совместимости мы проводим тщательную внутреннюю проверку рендеринга эмодзи, чтобы исключить ошибки. Это гарантирует совместимость библиотеки с различными версиями Android и устройствами.
Липкие варианты
Длительное нажатие на эмодзи откроет меню с вариантами, например, для разных полов или оттенков кожи. Выбранный вариант будет сохранён в палитре эмодзи, а последний выбранный вариант будет использован на главной панели. С помощью этой функции пользователи могут отправлять предпочитаемые варианты эмодзи одним нажатием.
Недавние эмодзи
RecentEmojiProvider отвечает за предоставление эмодзи в категории «Недавно использованные». В библиотеке есть поставщик эмодзи по умолчанию, который подходит для наиболее распространённых вариантов использования:
- Все выбранные эмодзи сохраняются для каждого уровня приложения в общих настройках.
- В палитре отображается не более 3 рядов выбранных эмодзи, без дубликатов, в обратном хронологическом порядке.
Если этого поведения по умолчанию достаточно, то вам не нужно настраивать метод setRecentEmojiProvider() .
Работа с EmojiCompat
Если в приложении есть экземпляр EmojiCompat , он будет использоваться в палитре эмодзи для отображения как можно большего количества эмодзи. Если EmojiCompat отключен, палитра эмодзи будет работать корректно.
Как пользоваться библиотекой
Чтобы использовать библиотеку, разработчик приложения должен
Импортируйте
androidx.emoji2:emojipicker:$versionвbuild.gradle.dependencies { implementation "androidx.emoji2:emojipicker:$version" }Расширьте представление выбора эмодзи и при необходимости настройте
emojiGridRowsиemojiGridColumnsна основе желаемого размера каждой ячейки эмодзи.- Вы можете оставить их неустановленными, по умолчанию установлено 9
emojiGridColumns, строки будут рассчитаны на основе высоты родительского представления иemojiGridColumns - Вы можете установить
emojiGridRowsкак плавающее значение, чтобы указать, что при прокрутке вниз в XML есть еще эмодзи.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />- Вы можете оставить их неустановленными, по умолчанию установлено 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)
Если вы хотите добавить выбранные эмодзи в EditText, используйте
setOnEmojiPickedListener()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" />
Смотрите пример приложения для примера реализации.
Полную информацию о API можно найти здесь .
Пример приложения
В этом примере приложения демонстрируются основные варианты использования, а также следующие дополнительные сценарии:
- Представление было переформатировано, поскольку
emojiGridRowsиemojiGridColumnsбыли сброшены. - Последний поставщик эмодзи переопределяется для сортировки по частоте.
- Настройка стиля.
Изменения API
Библиотека Emoji Picker обновлена следующими новыми API:
- Класс
EmojiPickerView, который предоставляет актуальные эмодзи в вертикально прокручиваемом представлении с кликабельным горизонтальным заголовком. - Возможность задавать количество столбцов и строк в сетке выбора эмодзи с помощью XML-атрибутов
emojiGridColumnsиemojiGridRowsили методовsetEmojiGridColumns()иsetEmojiGridRows(). - Возможность установки прослушивателя выбранных эмодзи с помощью метода
setOnEmojiPickedListener(). Слушатель будет получать уведомления каждый раз, когда пользователь нажимает на любой эмодзи. - Возможность указать поставщика последних эмодзи через метод
setRecentEmojiProvider(). Это необязательная функция. Если поставщик последних эмодзи не задан, библиотека будет использовать поставщика последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом:- Все выбранные эмодзи будут сохранены для каждого уровня приложения в общих настройках.
- В палитре будет отображено не более 3 строк выбранных эмодзи (без дубликатов) в обратном хронологическом порядке.
- Класс
EmojiViewItem, который содержит отображаемые эмодзи и их варианты. - Интерфейс
RecentEmojiProvider, который можно реализовать для предоставления списка недавно использованных эмодзи.recentEmojiProviderотвечает за предоставление эмодзи в категории «Недавно использованные». - Интерфейс
RecentEmojiAsyncProvider, который можно реализовать для предоставления списка недавно использованных эмодзи.RecentEmojiAsyncProviderотвечает за предоставление эмодзи в категории «Недавно использованные». Этот интерфейс эквивалентенRecentEmojiProvider, который позволяет клиентам переопределять методgetRecentEmojiListAsync()для предоставления последних эмодзи. - Класс
RecentEmojiProviderAdapter, который является адаптером дляRecentEmojiAsyncProviderи реализуетRecentEmojiProvider.
Версия 1.4.0-альфа01
22 марта 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие изменения.
Исправления ошибок
- Исправление тестов, отключение нестабильных тестов и очистка.
Версия 1.3
Версия 1.3.0
22 марта 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0 . Версия 1.3.0 содержит следующие изменения.
Важные изменения с версии 1.2.0
- Этот выпуск позволяет Compose Foundation
1.4.0и выше включить интеграцию emoji2. - Он также обеспечивает возможность замены
EmojiSpansпользовательским кодом рисования, а также поддержку исключений эмодзи, определенных на Android.
Версия 1.3.0-rc01
8 марта 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-rc01 . Версия 1.3.0-rc01 содержит следующие изменения.
Новые функции
- Эта версия поддерживает интеграцию emoji2 compose.
Изменения API
- Заменить интервалы на пользовательский код отрисовки.
- Запрос исключений системы.
Исправления ошибок
- И исправлена ошибка, из-за которой фоновые интервалы не применялись правильно за
EmojiSopans.
Версия 1.3.0-beta03
23 февраля 2023 г.
Выпущены androidx.emoji2:emoji2-bundled:1.3.0-beta03 , androidx.emoji2:emoji2-views:1.3.0-beta03 и androidx.emoji2:emoji2-views-helper:1.3.0-beta03 .
22 февраля 2023 г.
Выпущена androidx.emoji2:emoji2:1.3.0-beta03 . Версия 1.3.0-beta03 содержит следующие изменения.
Новые функции
- Без изменений. Этот релиз предназначен для подготовки к интеграции Compose.
Версия 1.3.0-beta02
8 февраля 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-beta02 . Версия 1.3.0-beta02 содержит следующие изменения.
Новые функции
- Этот выпуск представляет собой стабилизацию для поддержки интеграции компоновки.
Версия 1.3.0-beta01
25 января 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие изменения.
Новые функции
- Запрос исключений системы.
- Замена интервалов для пользовательского кода отрисовки.
- И исправлена ошибка, из-за которой фоновые интервалы не применялись правильно за
EmojiSopans. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompatв Compose. Ожидается, что поддержка Emoji Compat появится в ближайшем будущем выпуске.
Версия 1.3.0-альфа01
11 января 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие изменения.
Новые API для низкоуровневых взаимодействий
- Запрос системных исключений
- Замена интервалов для пользовательского кода отрисовки
- И исправлена ошибка, из-за которой фоновые интервалы не применялись правильно за
EmojiSopans. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompatв Compose. Ожидается, что поддержка Emoji Compat появится в ближайшем будущем выпуске.
Изменения API
- Добавлена возможность запрашивать системные исключения в
TypefaceEmojiRasterizer. ( I5653e ) - Добавлен новый API
EmojiCompat.SpanFactoryдля замены поведенияEmojiSpanпо умолчанию на пользовательский код отрисовки и изменения размера. ( Ib69d9 ) - Добавлен
EmojiCompatв Compose ( I96f37 , b/139326806 )
Исправления ошибок
- Emoji2 теперь будет правильно отрисовывать фоны из
BackgroundSpan. ( Ide6a8 , b/230525134 ) - Доработка API AppCompat для версии 1.5.0-beta01 ( I2a43d , b/236866227 )
Версия 1.2
Версия 1.2.0
10 августа 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0 . Версия 1.2.0 содержит следующие изменения.
Важные изменения с версии 1.1.0
Это версия с исправлением ошибок. Новые функции и API не добавлялись с версии 1.1.0.
Однако приложения, использующие PrecomputedText или TextView.setText(char[]) должны отдать приоритет переходу на эту версию.
Были исправлены следующие ошибки:
-
Emoji2добавит эмодзи вPrecomputedText, отбросив ранее вычисленную текстовую разметку. ( I47d06 , b/211231958 ) - Исправление сбоя редактора обратного переноса с Android P в
EditText, настроенный на использование emoji2. ( Ifd709 , b/216891011 ) - Исправлен сбой при загрузке шрифта emoji2 и использовании
TextView.setText(char[]). ( Id511e , b/206859724 )
Версия 1.2.0-rc01
27 июля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие изменения.
- Никаких изменений с момента последней бета-версии.
Версия 1.2.0-beta01
13 июля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие изменения.
Новые функции
- Никаких изменений по сравнению с предыдущей версией (этот выпуск предназначен для поддержки выпуска AppCompat).
Версия 1.2.0-альфа04
20 апреля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит следующие изменения.
Новые функции
- Никаких изменений в этом выпуске.
Версия 1.2.0-альфа03
6 апреля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит следующие изменения.
Новые функции
- Никаких изменений по сравнению с предыдущей версией (этот выпуск предназначен для поддержки выпуска appcompat).
Версия 1.2.0-альфа02
23 марта 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит следующие изменения.
Исправления ошибок
- Emoji2 добавит эмодзи в
PrecomputedText, отбросив ранее вычисленную текстовую разметку. ( I47d06 , b/211231958 ) - Исправление сбоя редактора обратного переноса с Android P в EditText, настроенный на использование emoji2. ( Ifd709 , b/216891011 )
- Исправлен сбой при загрузке шрифта emoji2 и использовании
TextView.setText(char[]). ( Id511e , b/206859724 )
Версия 1.2.0-альфа01
23 февраля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие изменения.
Никаких изменений с версии 1.1.0.
1.1
Версия 1.1.0
23 февраля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.1.0 . Версия 1.1.0 содержит следующие изменения.
Важные изменения с версии 1.0.0
- emoji2-bundled содержит шрифт emoji 14
- Новый API
getEmojiMatchвозвращает точную информацию для клавиатур, чтобы определить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener, которое позволяет корректно фильтровать символы при вводе цифр.
Версия 1.1.0-rc01
9 февраля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие изменения.
Новые функции
Никаких изменений по сравнению с бета-версией.
Новые функции по сравнению с emoji2 1.0.0:
-
emoji2-bundledсодержит шрифт emoji 14 - Новый API
getEmojiMatchвозвращает точную информацию для клавиатур, чтобы определить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener, которое позволяет корректно фильтровать символы при вводе цифр.
Версия 1.1.0-beta01
26 января 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие изменения.
Исправления ошибок
- Релиз androidx-emoji2 beta01. Без изменений по сравнению с alpha01 ( Ic61d9 ).
Версия 1.1.0-альфа01
15 декабря 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие изменения.
Новые функции
-
emoji2-bundledсодержит шрифт emoji 14 - Новый API
getEmojiMatchвозвращает точную информацию для клавиатур, чтобы определить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener, которое позволяет корректно фильтровать символы при вводе цифр.
Изменения API
- Добавлен новый API
getEmojiMatch, позволяющий клавиатурам более точно искать соответствие эмодзи в emojicompat. - Устарейте
hasEmojiGlyph, поскольку возвращаемое им логическое значение неточно при тестировании шрифта, который старше шрифта эмодзи платформы. Замените наgetEmojiMatch. ( Ie693d )
Исправления ошибок
- Emoji2 не будет заключать в оболочку экземпляры
NumberKeyListener, позволяя настраивать локаль с помощьюTextView. - Appcompat не будет переносить экземпляры
NumberKeyListener, переданные вsetKeyListener, что позволяетTextViewправильно настраивать локаль дляNumberKeyListeners. ( Ibf113 , b/207119921 )
1.0
Версия 1.0.1
15 декабря 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.1 . Версия 1.0.1 содержит следующие изменения.
Исправления ошибок
-
Emoji2не будет заключать в оболочку экземплярыNumberKeyListener, позволяя настраивать локаль с помощьюTextView. - Appcompat не будет переносить экземпляры
NumberKeyListener, переданные вsetKeyListener, что позволяетTextViewправильно настраивать локаль дляNumberKeyListeners. ( Ibf113 , b/207119921 )
Версия 1.0.0
17 ноября 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0 . Версия 1.0.0 содержит следующие изменения.
Основные особенности версии 1.0.0
androidx.emoji2 заменяет androidx.emoji с дополнительными возможностями:
- Уменьшение размера APK по сравнению с androidx.emoji
- Автоматическая настройка
- Добавлено как зависимость к appcompat 1.4
Дополнительную информацию об androidx.emoji2 см. в разделе Поддержка современных эмодзи и в нашем докладе на саммите разработчиков Android Отображение ВСЕХ эмодзи в вашем приложении Android Dev .
Версия 1.0.0-rc01
27 октября 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие изменения.
- Никаких изменений с версии beta02.
Emoji2 Версия 1.0.0-beta01
15 сентября 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие изменения.
Изменения API
Добавлен
setLoadingExecutorвFontRequestEmojiCompatConfig, который заменяет предыдущий APIsetHandler. Этот API позволяет приложениям настраиватьFontRequestEmojiCompatConfigдля использования любого фонового исполнителя.Это изменение является критическим по сравнению с
androidx.emoji:emoji, поэтомуsetHandlerсохраняется как устаревший API, не требующий операции, для облегчения миграции. ( I6cd48 )EmojiCompat корректно устанавливает
EditorInfo.extrasна Android 11- Пользовательские виджеты, использующие IME, не являющиеся подклассами EditText, могут вызывать
EmojiCompat.updateEditorInfo, чтобы сообщить IME о том, что они поддерживают обработку EmojiCompat. ( I1ea9b )
- Пользовательские виджеты, использующие IME, не являющиеся подклассами EditText, могут вызывать
Исправления ошибок
- Исправлен
DefaultEmojiCompatConfigдля корректного поиска поставщика шрифтов эмодзи в API 19 и 28. Это исправляет ошибку, появившуюся в emoji2 1.0.0-alpha01. ( Ib33d8 , b/197906329 )
Версия 1.0.0-альфа03
30 июня 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие изменения.
Новые функции
Этот выпуск содержит исправления ошибок и стабилизацию.
- EmojiEditTextHelper теперь позволяет передавать
nullв качестве KeyListener. Это позволяет платформе применять значения NULL к эмодзи, поддерживающим реализации EditText. - При использовании EmojiCompatInitializer начальная задержка запуска сокращается и срабатывает после возобновления первой активности. Это позволяет приложению запускаться без проблем и предотвращает загрузку шрифта при запуске приложений, не отображающих пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
- Для реализации задержки добавлена новая зависимость от
androidx.lifecycle:lifecycle-processизandroidx.emoji2:emoji2. Это окажет незначительное влияние на размер APK-файла для приложений, уже поддерживающих жизненный цикл (например, приложений с appcompat).
Изменения API
- Разрешить использование null KeyListener в AppCompatEditText. Это отменяет аннотацию «не null», добавленную в AppCompatEditText в версии 1.4.0-alpha01, и восстанавливает прежнее поведение при передаче null. ( I21482 , b/189559345 )
Исправления ошибок
- Измените EmojiCompatInitializer так, чтобы загрузка шрифта откладывалась до 500 мс после первого
Activity.onResume. Это позволяет активности выполнятьApplication.onCreateиActivity.onCreateбез конкуренции, при этом обеспечивая загрузку шрифта эмодзи вскоре после запуска приложения. ( I4bff7 )
Версия 1.0.0-альфа02
2 июня 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha02 , androidx.emoji2:emoji2-views:1.0.0-alpha02 и androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти изменения.
Изменения API
- Пакет в
emoji2-views-helperпереименован вandroidx.emoji2.viewsintegration. Это критическое изменение для AppCompat1.4.0-alpha01, и приложения должны обновить зависимость AppCompat для использования новой версии emoji2. ( Ie8397 )
Версия 1.0.0-альфа01
18 мая 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha01 , androidx.emoji2:emoji2-views:1.0.0-alpha01 и androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти изменения.
Возможности этого первоначального выпуска
Для поддержки современных эмодзи из API 19 рекомендуется интегрировать emojicompat во все приложения. Весь пользовательский контент в вашем приложении содержит 🎉.
EmojiCompat перешёл с артефактов androidx.emoji на новый androidx.emoji2 , который сейчас находится в стадии alpha01. Новые артефакты заменяют предыдущую версию.
emoji2 добавлен как зависимость к AppCompat, начиная с AppCompat 1.4.0-alpha01 и включен по умолчанию для представлений AppCompat.
Артефакт emoji2 представляет новую автоматическую настройку с использованием библиотеки androidx.startup . Вам больше не нужно писать код 👨🏽💻 для отображения 🐻❄️.
Изменения в emoji2 по сравнению с emoji
- Добавлена новая автоматическая конфигурация
EmojiCompatInitializerс использованиемandroidx.startup. - Добавлена новая конфигурация по умолчанию, которая использует местоположение службы для поиска поставщика загружаемых шрифтов в
DefaultEmojiCompatConfiguration. - Классы перенесены из пакета
androidx.emojiвandroidx.emoji2. - Выделите
EmojiTextViewи связанные с ним представления в отдельный артефактemoji2-views. Этот метод следует использовать только в том случае, если ваше приложение не использует appcompat. - Извлеченные помощники для интеграции emojicompat в пользовательские представления в отдельный артефакт
emoji2-views-helper. - Добавлены аннотации о допустимости значений NULL.
- Помощники в
emoji2-views-helperтеперь можно использовать, даже еслиEmojiCompatне инициализирован (ранее они вызывали исключение).
Какую зависимость следует добавить?
- Приложения с AppCompat следует обновить до версии AppCompat
1.4.0-alpha01или выше. - Приложения без AppCompat, использующие
TextView/EditTextиз платформы, должны использоватьEmojiTextViewи связанные с ним классы изemoji2-views.
Как поддерживать пользовательские представления
- Приложения с AppCompat должны расширять
AppCompatTextView,AppCompatButtonи т. д. вместо платформенныхTextViewи т. д. - Приложения без AppCompat должны добавить зависимость
androidx.emoji2:emoji2-views-helperи использовать помощников для интеграции с пользовательскими подклассамиTextViewилиEditText.
Настройка автоматической инициализации
Приложения могут отключить автоматическую инициализацию, добавив в манифест следующее:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> </provider>Это отключает автоматическую настройку, и вы можете передать пользовательскую конфигурацию в
EmojiCompat.init. Конфигурацию системы по умолчанию можно получить сDefaultEmojiCompatConfig.create(context)для дальнейшей настройки перед передачей вEmojiCompat.init.