Emoji2
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 23 września 2026 r. | 1.7.0 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od Emoji2, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { def emoji2_version = "1.7.0" implementation "androidx.emoji2:emoji2:$emoji2_version" implementation "androidx.emoji2:emoji2-views:$emoji2_version" implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version" }
Kotlin
dependencies { val emoji2_version = "1.7.0" implementation("androidx.emoji2:emoji2:$emoji2_version") implementation("androidx.emoji2:emoji2-views:$emoji2_version") implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.7
Wersja 1.7.0
23 września 2026 r.
Publikacja androidx.emoji2:emoji2-*:1.7.0 Wersja 1.7.0 zawiera te zmiany.
Ważne zmiany od wersji 1.6.0:
- Domyślnie wyłączona
EmojiCompat. Na Androidzie 15 lub nowszym funkcjaEmojiCompatjest domyślnie wyłączona. - Poprawiona wydajność. Skanowanie tekstu jest 4–6 razy szybsze, a alokacje przy uruchamianiu są o 99,6% mniejsze.
minSdkto teraz 24.
EmojiCompat jest domyślnie wyłączona na urządzeniach z Androidem 15 lub nowszym.
W przypadku interfejsu API w wersji 35 i nowszych system ma uniwersalny zasięg dzięki aktualizowanym czcionkom systemowym, więc w większości aplikacji EmojiCompat nie wykonuje żadnych działań.
Nowy interfejs API to EmojiCompat.Config.setUseAfterUpdatableSystemFonts(boolean), a jego domyślna wartość to false. Gdy ta opcja jest wyłączona, EmojiCompat jest wyłączona na urządzeniach z Androidem 15 lub nowszym, a aplikacja rysuje emoji za pomocą czcionki systemowej zainstalowanej za pomocą funkcji Updatable System Fonts.
Nie ma interfejsu API, który wykrywa, że EmojiCompat jest wyłączony. Nawet gdy setUseAfterUpdatableSystemFonts jest false, getLoadState() nadal zwraca LOAD_STATE_SUCCEEDED.
Ponowne włączanie na Androidzie 15 i nowszych wersjach za pomocą nowej flagi
EmojiCompat.init(
FontRequestEmojiCompatConfig(context, fontRequest)
.setUseAfterUpdatableSystemFonts(true)
)
Szybsze skanowanie tekstu
Analiza tekstu i przydzielanie środków na start-upy:
| p50 | 1.6.0 | 1.7.0 |
|---|---|---|
pureLatin |
16,43 µs | 2,66 µs |
latinWithOneSimpleEmoji |
12,13 µs | 2,43 µs |
latinWithOneComplexEmoji |
13,42 µs | 3,11 µs |
Alokacje dla startupów spadły o 99,6%. Łączne wykorzystanie pamięci również się zmniejszyło.
Gdy na urządzeniach z Androidem 15 lub nowszym parametr setUseAfterUpdatableSystemFonts ma wartość false (domyślną), wywołania pustych metod EmojiCompat są bezpłatne, a metadane emoji nie są przechowywane w pamięci.
minSdk wynosi 24
minSdk ma teraz 24 lata.
Wersja 1.7.0-rc01
9 września 2026 r.
Publikacja androidx.emoji2:emoji2-*:1.7.0-rc01 Wersja 1.7.0-rc01 zawiera te zmiany.
Ta wersja zawiera ulepszenia wydajności i jest zalecana wszystkim użytkownikom emoji2.
Poprawki błędów
compileSdkbibliotek Compose zaktualizowanych do wersji 37.1. Wymaga to przechodniego zaktualizowaniacompileSdkwe wszystkich aplikacjach i bibliotekach korzystających z Compose. (I05b0f)
Wersja 1.7.0-alpha01
26 sierpnia 2026 r.
Publikacja androidx.emoji2:emoji2-*:1.7.0-alpha01 Wersja 1.7.0-alpha01 zawiera te zmiany.
** Wersja z występem **
Ta wersja znacznie poprawia wydajność w porównaniu z poprzednimi.
• Mniejsze zużycie pamięci: wykorzystanie pamięci RAM przez drzewo trie metadanych zostało zmniejszone z ok. 2,2 MB do ok. 80 KB.
• Zmniejszone obciążenie związane z uruchamianiem: alokacje obiektów uruchamiania zostały zmniejszone z 24 178 do 82.
• Skanowanie tekstu bez przydzielania pamięci: skanowanie standardowego tekstu w języku łacińskim nie wymaga już przydzielania pamięci.
• Krótszy czas oczekiwania: średni czas oczekiwania podczas skanowania tekstu w języku łacińskim został skrócony o 83% (z 16,43 µs do 2,66 µs).
• Automatyczne pomijanie w przypadku API w wersji 35 lub nowszej: przetwarzanie EmojiCompat jest automatycznie pomijane na urządzeniach z czcionkami, które można aktualizować systemowo.
Zmiany w interfejsie API
- Dodano
setUseAfterUpdatableSystemFontsdoEmojiCompat.Config, aby opcjonalnie nadal używaćEmojiCompatna Androidzie 15 (API 35) i nowszym, nawet jeśli na wszystkich urządzeniach dostępne są czcionki systemowe, które można aktualizować. Wartość domyślna wyłącza EmojiCompat na urządzeniach z API 35 lub nowszym, co pozwala oszczędzać pamięć i skracać czas przetwarzania tekstu. (I7235e, b/541363642)
Poprawki błędów
- Selektor Emoji2 – zaktualizowano compileSdk Compose do interfejsu API 37. Oznacza to, że podczas korzystania z Compose wymagana jest minimalna wersja AGP 9.2.0. (Id45cd, b/413674743)
Wersja 1.6
Wersja 1.6.0
10 września 2025 r.
Publikacja androidx.emoji2:emoji2-*:1.6.0 Wersja 1.6.0 zawiera te zmiany.
Ważne zmiany od wersji 1.5.0:
- Obsługa emotikonów w wersji 16.0
- Dodaj do opisu emotikonów sufiks „emotikon”.
Poprawki błędów
- Przeniesienie domyślnego
minSdkz API 21 do API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
Wersja 1.6.0-rc01
13 sierpnia 2025 r.
Publikacja androidx.emoji2:emoji2-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zmiany.
Nowe funkcje
- Obsługa emotikonów w wersji 16.0 i dodanie do opisu treści sufiksu „emoji”.
Zmiany w interfejsie API
- Usuwanie nieaktualnych adnotacji
@RequiresApi(21)(Ic4792) - Usuwanie przestarzałych adnotacji
@RequiresApi(21)(I9103b)
Wersja 1.6.0-beta01
2 lipca 2025 r.
Publikacja androidx.emoji2:emoji2-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zmiany.
Nowe funkcje
- Obsługa aktualizacji emotikonów 16.0
- Dodaj do opisu treści sufiks „emoji”, aby zapewnić spójne działanie ułatwień dostępu we wszystkich selektorach emotikonów.
Wersja 1.6.0-alpha01
4 czerwca 2025 r.
Publikacja androidx.emoji2:emoji2-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Aktualizacje danych Emoji 16.0 (Ifc878)
- Dodawanie do opisu treści sufiksu „emoji”
Poprawki błędów
- Ta biblioteka używa teraz adnotacji o wartościach null z JSpecify, które są używane w typach. Deweloperzy Kotlin powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict,-Xtype-enhancement-improvements-strict-mode(Id07e7, b/326456246)
Wersja 1.5
Wersja 1.5.0
4 września 2024 r.
Publikacja androidx.emoji2:emoji2-*:1.5.0 Wersja 1.5.0 zawiera te zmiany.
Ważne zmiany od wersji 1.4.0
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emoji skierowanymi w lewo i w prawo.
- obsługi selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie w prawym dolnym rogu pojawi się cały emotikon, który będzie można wstawić.
Wersja 1.5.0-rc01
21 sierpnia 2024 r.
Publikacja androidx.emoji2:emoji2-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zmiany.
Nowe funkcje
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Wystarczy kliknąć przełącznik dwukierunkowy, aby przełączać się między wersjami emotikonów skierowanymi w lewo i w prawo.
- obsługi selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie pojawi się cały emotikon, który będzie można wstawić.
Poprawki błędów
- Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszą (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszej (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z wtyczki Androida do obsługi Gradle, zalecamy przejście na D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
- Wybór karty i wskaźnik
EmojiPickerViewsą aktualizowane z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty i wskaźnik
EmojiPickerViewnie działają. (5e1f14, b/273883688)
Wersja 1.5.0-beta01
10 lipca 2024 r.
Publikacja androidx.emoji2:emoji2-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zmiany.
Nowe funkcje
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu wyboru emotikonów.
- Zmiana projektu obsługi wyboru wielu odcieni skóry.
Poprawki błędów
- Wybór karty i wskaźnik
EmojiPickerViewsą aktualizowane z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty i wskaźnik
EmojiPickerViewnie działają. (5e1f14, b/273883688)
Wersja 1.5.0-alpha01
13 grudnia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
emoji2-bundledzawiera zaktualizowaną czcionkę emotikonów, która obsługuje Emoji 15.1.
Zmiany w interfejsie API
- Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego dla
InitCallback. (I32b67) BundledEmojiCompatConfigteraz przyjmuje wykonawcę do kontrolowania wątków wczytywania. (I00e81)
Wersja 1.4
Wersja 1.4.0
9 sierpnia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0 Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.3.0
- Wprowadziliśmy bibliotekę selektora emotikonów. Więcej informacji znajdziesz w dokumentacji dla programistów.
Wersja 1.4.0-rc01
26 lipca 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wprowadzenie listy
registerSource(Iae92f) - Opinia Rady ds. API: zmieniliśmy nazwę interfejsu
TransitionManager.seekTo()nacreateSeekController(). Zmień poprzedni komentarz dotyczący dodaniaTransitionManager.seekTo()doTransitionManager.createSeekController(). (Idbeb1) - Dodano element
ExerciseRouteResult, który nie jest klasą nadrzędną elementówData,NoDataiConsentRequiredStates. DodanoExerciseRoutejako samodzielną klasę, która zawiera dane o lokalizacji na trasie. (I22eed) - Wprowadzono
PagerLayoutInfoz informacjami zebranymi po przejściu testu w aplikacji Pager. Wprowadziliśmy też PageInfo, czyli informacje o pojedynczej zmierzonej stronie w Pagerze. (Iad003, b/283098900)
Poprawki błędów
- Zaktualizowaliśmy kolory
Button,IconButtoniTextButtonzgodnie z zasadami projektowania Material 3. Rolę semantyczną elementówButton,IconButtoniTextButtonmożna teraz zastąpić za pomocą elementuModifier.semantics. (Ib2495) - Naprawiono problem z wyborem karty i aktualizacją wskaźnika w
EmojiPickerView, które były opóźnione o 1 kliknięcie. (I4db04) FileNotFoundExceptionwyświetlanie selektora emotikonów (I353e4)- Wykorzystaj
WindowManager.BadTokenExceptionpodczas korzystania zEmojiPickerView(I0a144)
Wersja 1.4.0-beta05
7 czerwca 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-beta05 Wersja 1.4.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd wprowadzony w wersji 1.3, który powodował dwukrotne zastosowanie
MetricsAffectingSpans, np.RelativeSizeSpan. raz podczas układania tekstu i ponownie w elemencieEmojiSpan.draw. Wynik był nieprawidłowo skalowany, co było widoczne, jeśli którykolwiek z parametrów rozmiaru tekstu został zmieniony przez zakres. (b/283208650)
Wersja 1.4.0-beta04
24 maja 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-beta04 Wersja 1.4.0-beta04 zawiera te zatwierdzenia.
Ta wersja naprawia błąd występujący od wersji 1.0, w którym widoki z obsługą inną niż główna zgłaszały wyjątek podczas próby zaktualizowania zakresów emoji po zakończeniu ładowania czcionki. Nie ma obejścia tego problemu. Jeśli dotyczy Cię ten błąd, zaktualizuj oprogramowanie do tej lub nowszej wersji.
Poprawki błędów
- Funkcje zwrotne
EmojiCompatinit będą teraz korzystać z procedury obsługi z każdego widoku, z uwzględnieniem widoków, które nie znajdują się w głównym wątku. (Iccbcf)
Wersja 1.4.0-beta03
10 maja 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-beta03 Wersja 1.4.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono awarię zagnieżdżonego widoku wyskakującego okienka selektora emotikonów. (0acc8e)
- Wyrzucaj wczesne wyjątki w
EmojiCompat getEmojiStart/getEmojiEnd. (26177f)
Wersja 1.4.0-beta02
19 kwietnia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Aktualizacja plików bazowych lint (Iaa212)
Wersja 1.4.0-beta01
5 kwietnia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
androidx.emoji2:emoji2-emojipicker
Selektor emotikonów to rozwiązanie interfejsu, które zapewnia nowoczesny wygląd, aktualne emotikony i łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybierać spośród ostatnio używanych emotikonów. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewnić użytkownikom spójne i jednolite wrażenia związane z emotikonami bez konieczności tworzenia i utrzymywania własnego selektora emotikonów od podstaw.
Aktualne emotikony
Co roku pojawiają się nowe emotikony, które będziemy selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, przeprowadzamy wewnętrznie dokładne sprawdzanie renderowania emoji, aby wyeliminować tofu. Dzięki temu biblioteka będzie zgodna z wieloma wersjami Androida i urządzeniami.
Warianty przyklejone
Gdy przytrzymasz emotikon, wyświetli się menu z jego wariantami, np. różnymi płciami lub odcieniami skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatnio wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać preferowane warianty emoji jednym kliknięciem.
Ostatnio używane emotikony
RecentEmojiProvider odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę ostatnio używanych emoji, który spełnia wymagania większości typowych zastosowań:
- Wszystkie wybrane emoji są zapisywane na poziomie aplikacji w ustawieniach udostępnionych.
- Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej.
Jeśli to domyślne działanie jest wystarczające, nie musisz ustawiać metody setRecentEmojiProvider().
Korzystanie z biblioteki EmojiCompat
Jeśli aplikacja ma instancję EmojiCompat, będzie ona używana w selektorze emotikonów do renderowania jak największej liczby emotikonów. Jeśli EmojiCompat jest wyłączona, selektor emotikonów będzie nadal działać prawidłowo.
Jak korzystać z biblioteki
Aby korzystać z biblioteki, deweloper aplikacji powinien:
Importuj
androidx.emoji2:emojipicker:$versionwbuild.gradle.dependencies { implementation "androidx.emoji2:emojipicker:$version" }Rozwiń widok selektora emotikonów i opcjonalnie ustaw wartości
emojiGridRowsiemojiGridColumnsna podstawie żądanego rozmiaru każdej komórki emotikonu.- Możesz pozostawić je bez ustawienia. Domyślna wartość to 9
emojiGridColumns. Liczba wierszy zostanie obliczona na podstawie wysokości widoku rodzica i wartościemojiGridColumns. - Możesz ustawić wartość
emojiGridRowsjako liczbę zmiennoprzecinkową, aby wskazać, że po przewinięciu w dół pojawi się więcej emoji.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />- Możesz pozostawić je bez ustawienia. Domyślna wartość to 9
w kodzie,
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)
Jeśli chcesz dodać wybrane emotikony do pola EditText, użyj tego kodu:
setOnEmojiPickedListener()emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }Opcjonalnie ustaw
RecentEmojiProvider. Przykład implementacji znajdziesz w przykładowej aplikacji.Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu i zastosować go do elementu
EmojiPickerView. Na przykład zastąpienie elementucolorControlNormalspowoduje zmianę koloru ikony kategorii.<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" />
Przykład implementacji znajdziesz w przykładowej aplikacji.
Pełną listę interfejsów API znajdziesz tutaj.
Przykładowa aplikacja
Ta przykładowa aplikacja pokazuje podstawowe przypadki użycia oraz te dodatkowe scenariusze:
- Widok został ponownie rozmieszczony, ponieważ zresetowano wartości
emojiGridRowsiemojiGridColumns. - Ostatnio używane emotikony są zastępowane sortowaniem według częstotliwości.
- Dostosowywanie stylu.
Zmiany w interfejsie API
Biblioteka selektora emoji została zaktualizowana o te nowe interfejsy API:
- Klasa
EmojiPickerView, która zapewnia aktualne emotikony w widoku z możliwością przewijania w pionie i nagłówkiem z możliwością kliknięcia w poziomie. - Możliwość ustawienia liczby kolumn i wierszy w siatce selektora emotikonów za pomocą atrybutów XML
emojiGridColumnsiemojiGridRowslub metodsetEmojiGridColumns()isetEmojiGridRows(). - Możliwość ustawienia odbiorcy wybranego emotikona za pomocą metody
setOnEmojiPickedListener(). Słuchacz będzie otrzymywać powiadomienia za każdym razem, gdy użytkownik kliknie dowolną emoji. - Możliwość udostępniania najnowszych emotikonów za pomocą metody
setRecentEmojiProvider(). Ta funkcja jest opcjonalna. Jeśli dostawca ostatnio używanych emoji nie jest ustawiony, biblioteka użyje domyślnego dostawcy ostatnio używanych emoji. Działanie domyślne jest zdefiniowane w ten sposób:- Wszystkie wybrane emoji zostaną zapisane na poziomie poszczególnych aplikacji w ustawieniach wspólnych.
- Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej. Duplikaty zostaną usunięte.
- Klasa
EmojiViewItem, która zawiera wyświetlany emotikon i jego warianty. - Interfejs
RecentEmojiProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji.recentEmojiProviderodpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. - Interfejs
RecentEmojiAsyncProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji.RecentEmojiAsyncProviderodpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsuRecentEmojiProvider, który umożliwia klientom zastąpienie metodygetRecentEmojiListAsync(), aby udostępniać najnowsze emoji. - Klasa
RecentEmojiProviderAdapter, która jest adapterem dlaRecentEmojiAsyncProvideri implementujeRecentEmojiProvider.
Wersja 1.4.0-alpha01
22 marca 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie testów, wyłączanie testów niestabilnych i czyszczenie.
Wersja 1.3
Wersja 1.3.0
22 marca 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.2.0
- Ta wersja umożliwia włączenie integracji emoji2 w Compose Foundation
1.4.0i nowszych. - Umożliwia też zastępowanie znaku
EmojiSpansniestandardowym kodem rysowania oraz obsługuje wykluczenia emotikonów zdefiniowane w Androidzie.
Wersja 1.3.0-rc01
8 marca 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja obsługuje integrację tworzenia emoji2.
Zmiany w interfejsie API
- Zastąp zakresy niestandardowym kodem rysowania.
- Wykluczenia systemu zapytań.
Poprawki błędów
- Naprawiliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans.
Wersja 1.3.0-beta03
23 lutego 2023 roku
androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 i androidx.emoji2:emoji2-views-helper:1.3.0-beta03 są udostępnione.
22 lutego 2023 roku
Publikacja androidx.emoji2:emoji2:1.3.0-beta03 Wersja 1.3.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Bez zmian. Ta wersja przygotowuje do integracji tworzenia.
Wersja 1.3.0-beta02
8 lutego 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja stabilizuje działanie, aby umożliwić integrację z komponowaniem.
Wersja 1.3.0-beta01
25 stycznia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Wykonywanie zapytań dotyczących wykluczeń systemowych.
- zastępowanie zakresów kodem rysowania niestandardowego;
- Naprawiliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans. - Ta wersja dodaje interfejsy API niezbędne do obsługi
EmojiCompatw Compose. W najbliższej przyszłości planujemy wprowadzić obsługę tworzenia emotikonów w trybie zgodności.
Wersja 1.3.0-alpha01
11 stycznia 2023 r.
Publikacja androidx.emoji2:emoji2-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe interfejsy API do interakcji niskiego poziomu
- Wykluczenia systemu zapytań
- Zastępowanie zakresów w kodzie rysowania niestandardowego
- Naprawiliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans. - Ta wersja dodaje interfejsy API niezbędne do obsługi
EmojiCompatw Compose. W najbliższej przyszłości planujemy wprowadzić obsługę tworzenia emotikonów w trybie zgodności.
Zmiany w interfejsie API
- Dodaliśmy możliwość wysyłania zapytań o wykluczenia systemowe do
TypefaceEmojiRasterizer. (I5653e) - Dodaliśmy nowy interfejs API
EmojiCompat.SpanFactory, który umożliwia zastąpienie domyślnego działaniaEmojiSpanniestandardowym kodem rysowania i określania rozmiaru. (Ib69d9) - Dodano
EmojiCompatdo funkcji pisania (I96f37, b/139326806)
Poprawki błędów
- Emoji2 będzie teraz prawidłowo rysować tła z
BackgroundSpan. (Ide6a8, b/230525134) - Finalizacja interfejsów API AppCompat w wersji 1.5.0-beta01 (I2a43d, b/236866227)
Wersja 1.2
Wersja 1.2.0
10 sierpnia 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
Jest to wersja poprawiająca błędy. Od wersji 1.1.0 nie dodano żadnych nowych funkcji ani interfejsów API.
Aplikacje korzystające z wersji PrecomputedText lub TextView.setText(char[]) powinny jednak w pierwszej kolejności przejść na tę wersję.
Naprawiono te błędy:
Emoji2doda emotikony doPrecomputedText, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)- Przeniesienie poprawki błędu powodującego awarię edytora z Androida P do wersji
EditTextskonfigurowanej do korzystania z emoji2. (Ifd709, b/216891011) - Rozwiązaliśmy problem z awarią, która występowała, gdy emoji2 wczytywał czcionkę i używano znaku
TextView.setText(char[]). (Id511e, b/206859724)
Wersja 1.2.0-rc01
27 lipca 2022 roku
Publikacja androidx.emoji2:emoji2-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
- Brak zmian w porównaniu z ostatnią wersją beta.
Wersja 1.2.0-beta01
13 lipca 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Brak zmian w porównaniu z ostatnią wersją (ta wersja jest wydana w celu obsługi AppCompat).
Wersja 1.2.0-alpha04
20 kwietnia 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.
Nowe funkcje
- W tej wersji nie wprowadzono żadnych zmian.
Wersja 1.2.0-alpha03
6 kwietnia 2022 roku
Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Brak zmian w porównaniu z ostatnią wersją (ta wersja jest przeznaczona do obsługi wersji appcompat).
Wersja 1.2.0-alpha02
23 marca 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Emoji2 doda emotikony do
PrecomputedText, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958) - Przeniesienie poprawki błędu edytora z Androida P do widoku EditText skonfigurowanego do korzystania z emoji2. (Ifd709, b/216891011)
- Rozwiązaliśmy problem z awarią, która występowała, gdy emoji2 wczytywał czcionkę i używano znaku
TextView.setText(char[]). (Id511e, b/206859724)
Wersja 1.2.0-alpha01
23 lutego 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Brak zmian od wersji 1.1.0.
1.1
Wersja 1.1.0
23 lutego 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- emoji2-bundled zawiera czcionkę emoji 14
- Nowy interfejs API
getEmojiMatchzwraca dokładne informacje, dzięki którym klawiatury mogą określać, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową. - Poprawka błędu w
NumberKeyListener, która sprawia, że wpisywanie cyfr prawidłowo filtruje znaki.
Wersja 1.1.0-rc01
9 lutego 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.
Nowe funkcje
Brak zmian w wersji beta.
Nowe funkcje w porównaniu z emoji2 w wersji 1.0.0:
emoji2-bundledzawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatchzwraca dokładne informacje, które pozwalają klawiaturze określić, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową. - Poprawka błędu w
NumberKeyListener, który powoduje, że wpisywanie cyfr prawidłowo filtruje znaki
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Publikacja androidx.emoji2:emoji2-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.
Poprawki błędów
- Wersja beta01 biblioteki androidx-emoji2. Brak zmian w porównaniu z wersją alpha01 (Ic61d9)
Wersja 1.1.0-alpha01
15 grudnia 2021 roku
Publikacja androidx.emoji2:emoji2-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
emoji2-bundledzawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatchzwraca dokładne informacje, które pozwalają klawiaturze określić, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową. - Poprawka błędu w
NumberKeyListener, który powoduje, że wpisywanie cyfr prawidłowo filtruje znaki
Zmiany w interfejsie API
- Dodanie nowego interfejsu API
getEmojiMatch, który umożliwi klawiaturom dokładniejsze wyszukiwanie zachowań związanych z dopasowywaniem emotikonów w emojicompat. - Wycofanie funkcji
hasEmojiGlyph, ponieważ jej wartość logiczna jest niedokładna w przypadku testowania czcionki starszej niż czcionka emoji na platformie. Zastąp elementemgetEmojiMatch. (Ie693d)
Poprawki błędów
- Emoji2 nie będzie opakowywać instancji
NumberKeyListener, co umożliwi skonfigurowanie ustawień regionalnych przezTextView. - Biblioteka Appcompat nie będzie opakowywać instancji
NumberKeyListenerprzekazywanych dosetKeyListener, co umożliwi biblioteceTextViewprawidłowe skonfigurowanie ustawień regionalnych wNumberKeyListeners. (Ibf113, b/207119921)
1,0
Wersja 1.0.1
15 grudnia 2021 roku
Publikacja androidx.emoji2:emoji2-*:1.0.1 Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Emoji2nie będzie opakowywać instancjiNumberKeyListener, co umożliwi konfigurowanie języka przezTextView.- Biblioteka Appcompat nie będzie opakowywać instancji
NumberKeyListenerprzekazywanych dosetKeyListener, co umożliwi biblioteceTextViewprawidłowe skonfigurowanie ustawień regionalnych wNumberKeyListeners. (Ibf113, b/207119921)
Wersja 1.0.0
17 listopada 2021 r.
Publikacja androidx.emoji2:emoji2-*:1.0.0 Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
Biblioteka androidx.emoji2 zastępuje bibliotekę androidx.emoji i oferuje dodatkowe funkcje:
- Zmniejszenie rozmiaru pliku APK w porównaniu z androidx.emoji
- Konfiguracja automatyczna
- Dodano jako zależność do biblioteki appcompat w wersji 1.4
Więcej informacji o androidx.emoji2 znajdziesz w artykule Obsługa nowoczesnych emotikonów i w naszej prezentacji z Android Dev Summit Wyświetlanie wszystkich emotikonów w aplikacji na Androida.
Wersja 1.0.0-rc01
27 października 2021 r.
Publikacja androidx.emoji2:emoji2-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od wersji beta02.
Emoji2 w wersji 1.0.0-beta01
15 września 2021 r.
Publikacja androidx.emoji2:emoji2-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
Dodano
setLoadingExecutordoFontRequestEmojiCompatConfig, co zastępuje poprzedni interfejs APIsetHandler. Ten interfejs API umożliwia aplikacjom konfigurowanieFontRequestEmojiCompatConfigdo korzystania z dowolnego wykonawcy w tle.Ta zmiana jest zmianą powodującą niezgodność z
androidx.emoji:emoji, więcsetHandlerjest zachowywany jako wycofany interfejs API bez działania, aby ułatwić migrację. (I6cd48)Biblioteka EmojiCompat prawidłowo ustawia wartość
EditorInfo.extrasna Androidzie 11- Niestandardowe widżety, które używają IME i nie są podklasą klasy EditText, mogą wywoływać metodę
EmojiCompat.updateEditorInfo, aby poinformować IME, że obsługują przetwarzanie za pomocą biblioteki EmojiCompat. (I1ea9b)
- Niestandardowe widżety, które używają IME i nie są podklasą klasy EditText, mogą wywoływać metodę
Poprawki błędów
- Poprawiono
DefaultEmojiCompatConfig, aby prawidłowo wyszukiwać dostawcę czcionki emoji na interfejsach API 19 i 28. Rozwiązuje to błąd wprowadzony w wersji emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)
Wersja 1.0.0-alpha03
30 czerwca 2021 r.
Publikacja androidx.emoji2:emoji2-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
Ta wersja zawiera poprawki błędów i poprawia stabilność.
- Klasa EmojiEditTextHelper umożliwia teraz przekazywanie obiektu
nulljako KeyListener. Umożliwia to zastosowanie do implementacji EditText obsługujących emoji zachowania platformy, które zezwala na wartości null. - W przypadku korzystania z klasy EmojiCompatInitializer początkowe opóźnienie uruchamiania jest skracane, aby wywoływać je po wznowieniu pierwszej aktywności. Dzięki temu aplikacja może uruchamiać się bez zakłóceń i nie trzeba wczytywać czcionki w przypadku uruchomień, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu biblioteka EmojiCompat utworzy wątek do wczytania czcionki emotikonów.
- Aby wdrożyć opóźnienie, dodawana jest nowa zależność od
androidx.lifecycle:lifecycle-processzandroidx.emoji2:emoji2. W przypadku aplikacji, które już zawierają cykl życia (np. aplikacji z biblioteką appcompat), będzie to miało znikomy wpływ na rozmiar pliku APK.
Zmiany w interfejsie API
- Zezwalaj na wartość null w przypadku KeyListener w klasie AppCompatEditText. Cofa to adnotację o wartości niezerowej, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01, i przywraca poprzednie działanie w przypadku przekazania wartości null. (I21482, b/189559345)
Poprawki błędów
- Zmień EmojiCompatInitializer, aby opóźnić ładowanie czcionki do 500 ms po pierwszym wywołaniu
Activity.onResume. Dzięki temu aktywność może wykonywać operacjeApplication.onCreateiActivity.onCreatebez zakłóceń, a jednocześnie zapewniać, że czcionka emoji zostanie wczytana wkrótce po uruchomieniu aplikacji. (I4bff7)
Wersja 1.0.0-alpha02
2 czerwca 2021 r.
androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 i androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 są udostępnione. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono nazwę pakietu w
emoji2-views-helpernaandroidx.emoji2.viewsintegration. Jest to zmiana powodująca niezgodność w przypadku biblioteki AppCompat1.4.0-alpha01. Aplikacje muszą zaktualizować zależność AppCompat, aby używać nowej wersji emoji2. (Ie8397)
Wersja 1.0.0-alpha01
18 maja 2021 r.
androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 i androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 są udostępnione. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Funkcje w tej pierwszej wersji
Aby obsługiwać nowoczesne emotikony od API19, zalecamy zintegrowanie biblioteki emojicompat we wszystkich aplikacjach. Wszystkie treści użytkowników w Twojej aplikacji zawierają emoji 🎉.
Biblioteka EmojiCompat została przeniesiona z artefaktów androidx.emoji do nowych artefaktów androidx.emoji2, które są teraz w wersji alfa01. Nowe artefakty zastąpią poprzednią wersję.
emoji2 jest dodawany jako zależność do biblioteki AppCompat od wersji AppCompat 1.4.0-alpha01 i jest domyślnie włączony w przypadku widoków AppCompat.
Artefakt emoji2 wprowadza nową automatyczną konfigurację z użyciem biblioteki androidx.startup. Nie musisz już pisać 👨🏽💻 kodu, aby wyświetlić 🐻❄️.
Zmiany w emoji2 w porównaniu z emoji
- Dodano nową automatyczną konfigurację
EmojiCompatInitializerza pomocąandroidx.startup. - Dodano nową konfigurację domyślną, która używa lokalizacji usługi do znajdowania dostawcy czcionek do pobrania w
DefaultEmojiCompatConfiguration. - Klasy przeniesione z pakietu
androidx.emojido pakietuandroidx.emoji2. - Podziel widoki
EmojiTextViewi powiązane z nimi widoki na osobny artefaktemoji2-views. Używaj tego tylko wtedy, gdy aplikacja nie korzysta z biblioteki appcompat. - Wyodrębnione funkcje pomocnicze do integrowania biblioteki emojicompat z widokami niestandardowymi w osobnym artefakcie
emoji2-views-helper. - Dodano adnotacje dotyczące dopuszczalności wartości null.
- Funkcje pomocnicze w
emoji2-views-helpermożna teraz używać nawet wtedy, gdyEmojiCompatnie jest zainicjowany (wcześniej powodowały wyjątek).
Jaką zależność należy dodać?
- Aplikacje korzystające z AppCompat powinny zostać uaktualnione do wersji AppCompat
1.4.0-alpha01lub nowszej. - Aplikacje bez AppCompat korzystające z
TextView/EditTextz platformy powinny używaćEmojiTextViewi powiązanych klas zemoji2-views.
Obsługa w widokach niestandardowych
- Aplikacje korzystające z AppCompat powinny rozszerzać
AppCompatTextView,AppCompatButtonitp. zamiast platformyTextViewitp. - Aplikacje bez AppCompat powinny dodać zależność
androidx.emoji2:emoji2-views-helperi używać pomocników do integracji z niestandardowymi podklasamiTextViewlubEditText.
Konfigurowanie automatycznej inicjalizacji
Aplikacje mogą wyłączyć automatyczną inicjację, dodając do pliku manifestu ten kod:
<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>Wyłącza to automatyczną konfigurację, a następnie możesz przekazać niestandardową konfigurację do
EmojiCompat.init. Domyślną konfigurację systemu można pobraćDefaultEmojiCompatConfig.create(context)w celu dalszej konfiguracji przed przekazaniem doEmojiCompat.init.
Emoji2 Emojipicker w wersji 1.0
Wersja 1.0.0-alpha03
8 marca 2023 r.
Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto niepotrzebne zasoby i zmniejszono rozmiar biblioteki o ok.0,3 M.
Wersja 1.0.0-alpha02
22 lutego 2023 roku
Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy nowy interfejs API dla klientów Java, aby mogli oni udostępniać najnowsze emoji. (I39d10)
Poprawki błędów
- Aktualizacja zasobów emotikonów w celu obsługi emotikonów w wersji 15.0 (Ib4eb3)
- Gdy wybierzesz emotikon w wyskakującym okienku, wszystkie identyczne emotikony zostaną zastąpione nowo wybranym emotikonem (z wyjątkiem wiersza z ostatnio używanymi emotikonami). Odczytuj też emotikony po kliknięciu. (I892c6)
- Przed wyświetleniem znaku
EmojiPickerViewpoczekaj, aż wczyta się emojicompat. (I29e03)
Wersja 1.0.0-alpha01
25 stycznia 2023 r.
Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy selektor emotikonów, który zapewnia spójność wrażeń użytkowników dzięki najnowszym emotikonom na urządzeniach OEM z systemem operacyjnym Android i w aplikacjach. Zapewnia obsługę najnowszych emotikonów i interfejs selektora emotikonów, w tym warianty odcieni skóry i obsługę zgodności emotikonów.
Zmiany w interfejsie API
- Wprowadzono klasę
EmojiPickerView, która zapewnia aktualne emotikony w widoku przewijanym w pionie z nagłówkiem poziomym, w który można kliknąć. - Kolumny siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridColumnslub funkcjisetEmojiGridColumns(). - Wiersze siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridRowslub funkcjisetEmojiGridRows(). - Słuchacza wybranego emoji można ustawić za pomocą
setOnEmojiPickedListener(). Będzie on otrzymywać powiadomienia, gdy użytkownik kliknie dowolny emoji. - Ostatni dostawca emotikonów może otrzymać
setRecentEmojiProvider(). Ta funkcja jest opcjonalna. Jeśli dostawca ostatnio używanych emoji nie jest ustawiony, biblioteka użyje domyślnego dostawcy ostatnio używanych emoji. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emoji zostaną zapisane na poziomie aplikacji w ustawieniach udostępnionych. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej. Duplikaty zostaną usunięte. - Wprowadzono klasę
EmojiViewItem, która zawiera wyświetlany emotikon i jego warianty. - Wprowadzono interfejs
RecentEmojiProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji.recentEmojiProviderodpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”.