Emoji2

Emojis auf aktuellen und älteren Geräten anzeigen
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
2. Juli 2025 1.5.0 - 1.6.0-beta01 -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Emoji2 hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovy

dependencies {
    def emoji2_version = "1.5.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.5.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Emoji2-Emoji-Auswahl – Version 1.0

Version 1.5.0

4. September 2024

androidx.emoji2:emoji2-*:1.5.0 wird veröffentlicht. Version 1.5.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.4.0

  • Unterstützung von Emoji 15.1 und bidirektionaler Emoji-Auswahl. Durch einfaches Klicken auf den bidirektionalen Schalter können Nutzer zwischen Emojis, die nach links oder rechts ausgerichtet sind, wechseln.
  • Unterstützung der Emoji-Auswahl mit mehreren Hauttönen. Wenn Sie lange auf Paar-Emojis drücken, wird eine Auswahl für Mehrpersonen-Emojis für den Nullstatus angezeigt. Wenn der Nutzer auf die linke Hälfte eines Emojis tippt, wird die Emoji-Vorschau unten rechts entsprechend aktualisiert. Wenn der Nutzer beide Hälften eines Emojis auswählt, wird in der Emoji-Vorschau unten rechts das gesamte Emoji angezeigt und der Nutzer kann es eingeben.

Version 1.0.0-alpha03

8. März 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • Unnötige Ressourcen wurden entfernt und die Bibliotheksgröße wurde um etwa 0,3 MB reduziert.

Version 1.0.0-alpha02

22. Februar 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

  • Es wurde eine neue API für Java-Clients hinzugefügt, damit aktuelle Emojis bereitgestellt werden können. (I39d10)

Fehlerkorrekturen

  • Emoji-Ressourcen aktualisieren, um Emoji 15.0 zu unterstützen (Ib4eb3)
  • Wenn Sie ein Emoji aus dem Pop-up-Fenster auswählen, werden alle identischen Emojis (außer in der Zeile mit den zuletzt verwendeten Emojis) durch das neu ausgewählte Emoji ersetzt. Das Emoji wird auch angesagt, wenn darauf geklickt wird. (I892c6)
  • Warte, bis „emojicompat“ geladen wurde, bevor du die EmojiPickerView anzeigst. (I29e03)

Version 1.0.0-alpha01

25. Januar 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Wir haben eine Emoji-Auswahl eingeführt, die für eine einheitliche Nutzererfahrung mit den neuesten Emojis auf OEM-Geräten und in Apps mit Android-Betriebssystem sorgt. Sie bietet die neueste Emoji-Unterstützung und eine Emoji-Auswahl-Benutzeroberfläche mit Hauttonvarianten und Unterstützung für Emoji-Kompatibilität.

API-Änderungen

  • Die Klasse EmojiPickerView wurde eingeführt, die aktuelle Emojis in einer vertikal scrollbaren Ansicht mit einem anklickbaren horizontalen Header bietet.
  • Die Spalten des Emoji-Auswahlfelds können über das XML-Attribut emojiGridColumns oder die Funktion setEmojiGridColumns() festgelegt werden.
  • Die Zeilen des Emoji-Auswahlfelds können über das XML-Attribut emojiGridRows oder die Funktion setEmojiGridRows() festgelegt werden.
  • Der Listener für ausgewählte Emojis kann über setOnEmojiPickedListener() festgelegt werden. Der Listener wird benachrichtigt, wenn der Nutzer auf ein Emoji klickt.
  • Der zuletzt verwendete Emoji-Anbieter kann mit setRecentEmojiProvider() angegeben werden. Dies ist eine optionale Funktion. Wenn der Anbieter für zuletzt verwendete Emojis nicht festgelegt ist, wird von der Bibliothek ein Standardanbieter verwendet. Das Standardverhalten ist so definiert: 1) Alle ausgewählten Emojis werden auf App-Ebene in den gemeinsamen Einstellungen gespeichert. 2. In der Auswahl werden maximal drei Zeilen mit ausgewählten Emojis in umgekehrter chronologischer Reihenfolge angezeigt.
  • Die Klasse EmojiViewItem wurde eingeführt, die das angezeigte Emoji und seine Emoji-Varianten enthält.
  • Die RecentEmojiProvider-Schnittstelle wurde eingeführt, die implementiert werden kann, um eine Liste der zuletzt verwendeten Emojis bereitzustellen. Die recentEmojiProvider ist für die Bereitstellung von Emojis in der Kategorie „Kürzlich verwendet“ verantwortlich.

Version 1.6

Version 1.6.0-beta01

2. Juli 2025

androidx.emoji2:emoji2-*:1.6.0-beta01 wird veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.

Neue Funktionen

  • Unterstützung von Emoji 16.0-Updates
  • Fügen Sie der Inhaltsbeschreibung das Suffix „Emoji“ hinzu, damit wir in allen Emoji-Auswahl-Apps ein einheitliches Verhalten in Bezug auf die Barrierefreiheit haben.

Version 1.6.0-alpha01

4. Juni 2025

androidx.emoji2:emoji2-*:1.6.0-alpha01 wird veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Aktualisierung der Daten für Emoji 16.0 (Ifc878)
  • Suffix „Emoji“ zur Inhaltsbeschreibung hinzufügen

Fehlerkorrekturen

  • In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten die folgenden Compiler-Argumente verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id07e7, b/326456246)

Version 1.5

Version 1.5.0

4. September 2024

androidx.emoji2:emoji2-*:1.5.0 wird veröffentlicht. Version 1.5.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.4.0

  • Unterstützung von Emoji 15.1 und bidirektionaler Emoji-Auswahl. Durch einfaches Klicken auf den bidirektionalen Schalter können Nutzer zwischen Emojis, die nach links oder rechts ausgerichtet sind, wechseln.
  • Unterstützung der Emoji-Auswahl mit mehreren Hauttönen. Wenn Sie lange auf Paar-Emojis drücken, wird eine Auswahl für Mehrpersonen-Emojis für den Nullstatus angezeigt. Wenn der Nutzer auf die linke Hälfte eines Emojis tippt, wird die Emoji-Vorschau unten rechts entsprechend aktualisiert. Wenn der Nutzer beide Hälften eines Emojis auswählt, wird in der Emoji-Vorschau unten rechts das gesamte Emoji angezeigt und der Nutzer kann es eingeben.

Version 1.5.0-rc01

21. August 2024

androidx.emoji2:emoji2-*:1.5.0-rc01 wird veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.

Neue Funktionen

  • Unterstützung von Emoji 15.1 und bidirektionaler Emoji-Auswahl. Durch einfaches Klicken auf den bidirektionalen Schalter können Nutzer zwischen der nach links und der nach rechts ausgerichteten Version von Emojis wechseln.
  • Unterstützung der Emoji-Auswahl mit mehreren Hauttönen. Wenn Sie lange auf Paar-Emojis drücken, wird eine Auswahl für Mehrpersonen-Emojis für den Nullstatus angezeigt. Wenn der Nutzer auf die linke Hälfte eines Emojis tippt, wird die Emoji-Vorschau unten rechts entsprechend aktualisiert. Wenn der Nutzer beide Hälften eines Emojis auswählt, wird in der Vorschau das gesamte Emoji angezeigt und der Nutzer kann es dann eingeben.

Fehlerkorrekturen

  • Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies automatisch über die API-Modellierung erfolgt, wenn R8 mit AGP 7.3 oder höher (z.B. R8-Version 3.3) verwendet wird, und für alle Builds, wenn AGP 8.1 oder höher (z.B. D8-Version 8.1) verwendet wird. Clients, die AGP nicht verwenden, wird empfohlen, auf D8-Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (If6b4c, b/345472586)
  • Die Tab-Auswahl und die Aktualisierung der Indikatoren von EmojiPickerView erfolgen mit einer Verzögerung von einem Klick. (146b02, b/288261054)
  • Die Tab-Auswahl und der Indikator von EmojiPickerView funktionieren nicht. (5e1f14, b/273883688)

Version 1.5.0-beta01

10. Juli 2024

androidx.emoji2:emoji2-*:1.5.0-beta01 wird veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

Neue Funktionen

  • Unterstützung von Emoji 15.1 und bidirektionale Emoji-Auswahl.
  • Unterstützung der Neugestaltung der Auswahl mehrerer Hauttöne.

Fehlerkorrekturen

  • Die Tab-Auswahl und die Aktualisierung der Indikatoren von EmojiPickerView erfolgen mit einer Verzögerung von einem Klick. (146b02, b/288261054)
  • Die Tab-Auswahl und der Indikator von EmojiPickerView funktionieren nicht. (5e1f14, b/273883688)

Version 1.5.0-alpha01

13. Dezember 2023

androidx.emoji2:emoji2-*:1.5.0-alpha01 wird veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.

Neue Funktionen

  • emoji2-bundled enthält eine aktualisierte Emoji-Schriftart zur Unterstützung von Emoji 15.1.

API-Änderungen

  • Fügen Sie Executors hinzu, um den Callback-Thread für InitCallback zu steuern. (I32b67)
  • BundledEmojiCompatConfig verwendet jetzt einen Executor, um das Laden von Threads zu steuern. (I00e81)

Version 1.4

Version 1.4.0

9. August 2023

androidx.emoji2:emoji2-*:1.4.0 wird veröffentlicht. Version 1.4.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.3.0

Version 1.4.0-rc01

26. Juli 2023

androidx.emoji2:emoji2-*:1.4.0-rc01 wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

API-Änderungen

  • Einführung der Liste registerSource (Iae92f)
  • Feedback des API Council: TransitionManager.seekTo() wurde in createSeekController() umbenannt. Bitte passe den vorherigen Kommentar zum Hinzufügen von TransitionManager.seekTo() zu TransitionManager.createSeekController() an. (Idbeb1)
  • ExerciseRouteResult wurde hinzugefügt. Das ist nicht die Oberklasse für Data, NoData und ConsentRequiredStates. ExerciseRoute wurde als eigenständige Klasse hinzugefügt, die Standortdaten für die Route enthält. (I22eed)
  • PagerLayoutInfo wurde mit Informationen eingeführt, die nach einem Measure-Pass in Pager erhoben wurden. Außerdem wurde PageInfo eingeführt, die Informationen zu einer einzelnen gemessenen Seite in Pager. (Iad003, b/283098900)

Fehlerkorrekturen

  • Wir haben die Farben für Button, IconButton und TextButton gemäß Material3-Design aktualisiert. Die semantische Rolle für Button, IconButton und TextButton kann jetzt mit Modifier.semantics überschrieben werden. (Ib2495)
  • Die Tab-Auswahl und die Aktualisierung der Anzeige von EmojiPickerView waren um einen Klick verzögert. (I4db04)
  • FileNotFoundException beim Anzeigen der Emoji-Auswahl (I353e4)
  • WindowManager.BadTokenException bei Verwendung von EmojiPickerView abfangen (I0a144)

Version 1.4.0-beta05

7. Juni 2023

androidx.emoji2:emoji2-*:1.4.0-beta05 wird veröffentlicht. Version 1.4.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, der in Version 1.3 eingeführt wurde und dazu führte, dass MetricsAffectingSpans wie RelativeSizeSpan zweimal angewendet wurden. Einmal während des Textlayouts und noch einmal innerhalb von EmojiSpan.draw. Das Ergebnis war ein falsch dimensionierter Draw, der sichtbar war, wenn einer der Textgrößenparameter durch den Span geändert wurde. (b/283208650)

Version 1.4.0-beta04

24. Mai 2023

androidx.emoji2:emoji2-*:1.4.0-beta04 wird veröffentlicht. Version 1.4.0-beta04 enthält diese Commits.

In dieser Version wird ein Fehler behoben, der seit Version 1.0 vorhanden war. Bei Ansichten mit einem nicht primären Handler wurde eine Ausnahme ausgelöst, wenn versucht wurde, die Emoji-Spans nach dem Laden der Schriftart zu aktualisieren. Wenn Sie von diesem Fehler betroffen sind, gibt es keine Problemumgehung. Führen Sie ein Upgrade auf diese oder eine neuere Version durch.

Fehlerkorrekturen

  • EmojiCompat-Initialisierungs-Callbacks verwenden jetzt den Handler aus jeder Ansicht und berücksichtigen Ansichten, die nicht im Hauptthread ausgeführt werden. (Iccbcf)

Version 1.4.0-beta03

10. Mai 2023

androidx.emoji2:emoji2-*:1.4.0-beta03 wird veröffentlicht. Version 1.4.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz der verschachtelten Pop-up-Ansicht der Emoji-Auswahl wurde behoben. (0acc8e)
  • Geben Sie frühe Ausnahmen in EmojiCompat getEmojiStart/getEmojiEnd aus. (26177f)

Version 1.4.0-beta02

19. April 2023

androidx.emoji2:emoji2-*:1.4.0-beta02 wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Lint-Baselines aktualisieren (Iaa212)

Version 1.4.0-beta01

5. April 2023

androidx.emoji2:emoji2-*:1.4.0-beta01 wird veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

Neue Funktionen

androidx.emoji2:emoji2-emojipicker

Die Emoji-Auswahl ist eine UI-Lösung mit einem modernen Look und aktuellen Emojis, die sich einfach bedienen lässt. Nutzer können Emojis und ihre Varianten durchsuchen und auswählen oder aus ihren zuletzt verwendeten Emojis auswählen. Mit dieser Bibliothek können Apps verschiedener OEMs ihren Nutzern eine inklusive und einheitliche Emoji-Auswahl bieten, ohne dass die Entwickler ihre eigene Emoji-Auswahl von Grund auf neu erstellen und pflegen müssen.

Aktuelle Emojis

Jedes Jahr werden neue Emojis veröffentlicht. Wir werden sie nach und nach in die Emoji-Auswahl aufnehmen. Um die Abwärtskompatibilität zu gewährleisten, führen wir intern eine genaue Prüfung der Emoji-Renderbarkeit durch, um Tofu zu vermeiden. So wird sichergestellt, dass die Bibliothek mit mehreren Android-Versionen und Geräten kompatibel ist.

Fixierte Varianten

Wenn Sie ein Emoji lange gedrückt halten, wird ein Menü mit Varianten wie verschiedenen Geschlechtern oder Hauttönen angezeigt. Die ausgewählte Variante wird in der Emoji-Auswahl gespeichert und die zuletzt ausgewählte Variante wird im Hauptbereich verwendet. Mit dieser Funktion können Nutzer ihre bevorzugten Emoji-Varianten mit nur einem Tippen senden.

Zuletzt verwendete Emojis

Die RecentEmojiProvider ist für die Bereitstellung von Emojis in der Kategorie „Kürzlich verwendet“ verantwortlich. Die Bibliothek hat einen standardmäßigen Anbieter für zuletzt verwendete Emojis, der den häufigsten Anwendungsfall abdeckt:

  • Alle ausgewählten Emojis werden auf App-Ebene in den gemeinsamen Einstellungen gespeichert.
  • In der Auswahl werden maximal drei Zeilen mit ausgewählten Emojis in umgekehrter chronologischer Reihenfolge angezeigt.

Wenn dieses Standardverhalten ausreicht, müssen Sie die Methode setRecentEmojiProvider() nicht festlegen.

Mit EmojiCompat arbeiten

Wenn die App eine EmojiCompat-Instanz hat, wird sie in der Emoji-Auswahl verwendet, um so viele Emojis wie möglich zu rendern. Wenn EmojiCompat deaktiviert ist, funktioniert die Emoji-Auswahl weiterhin einwandfrei.

Bibliothek verwenden

Wenn ein App-Entwickler die Bibliothek verwenden möchte, sollte er

  1. Importieren Sie androidx.emoji2:emojipicker:$version in build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Blähen Sie die Ansicht der Emoji-Auswahl auf und legen Sie optional emojiGridRows und emojiGridColumns basierend auf der gewünschten Größe der einzelnen Emoji-Zellen fest.

    • Sie können sie auch nicht festlegen. Der Standardwert ist 9 emojiGridColumns. Die Zeilen werden anhand der Höhe der übergeordneten Ansicht und emojiGridColumns berechnet.
    • Sie können emojiGridRows als Gleitkommazahl festlegen, um anzugeben, dass beim Scrollen in XML weitere Emojis angezeigt werden.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

im Code

    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)
  1. Wenn Sie die ausgewählten Emojis an ein EditText-Feld anhängen möchten, verwenden Sie setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Optional können Sie RecentEmojiProvider festlegen. Eine Beispielimplementierung finden Sie in der Beispiel-App.

  3. Sie können die Stile optional anpassen. Erstellen Sie einen eigenen Stil, um allgemeine Designattribute zu überschreiben und den Stil auf EmojiPickerView anzuwenden. Wenn Sie beispielsweise colorControlNormal überschreiben, ändert sich die Farbe des Kategorie-Symbols.

      <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" />
    

Eine Beispielimplementierung finden Sie in der Beispiel-App.

Eine vollständige API-Oberfläche finden Sie hier.

Beispiel-App

Diese Beispiel-App demonstriert grundlegende Anwendungsfälle sowie die folgenden zusätzlichen Szenarien:

  • Das Layout der Ansicht wurde neu erstellt, da emojiGridRows und emojiGridColumns zurückgesetzt wurden.
  • Der Anbieter für zuletzt verwendete Emojis wird überschrieben, um nach Häufigkeit zu sortieren.
  • Stilanpassung:

API-Änderungen

Die Emoji-Auswahl-Bibliothek wurde mit den folgenden neuen APIs aktualisiert:

  • Die EmojiPickerView-Klasse, die aktuelle Emojis in einer vertikal scrollbaren Ansicht mit einer anklickbaren horizontalen Kopfzeile bereitstellt.
  • Die Anzahl der Spalten und Zeilen im Emoji-Auswahlfeld kann über die XML-Attribute emojiGridColumns und emojiGridRows oder die Methoden setEmojiGridColumns() und setEmojiGridRows() festgelegt werden.
  • Die Möglichkeit, einen Listener für ausgewählte Emojis über die Methode setOnEmojiPickedListener() festzulegen. Der Listener wird benachrichtigt, wenn der Nutzer auf ein Emoji klickt.
  • Die Möglichkeit, über die Methode setRecentEmojiProvider() einen aktuellen Emoji-Anbieter anzugeben. Dies ist eine optionale Funktion. Wenn der Anbieter für zuletzt verwendete Emojis nicht festgelegt ist, wird von der Bibliothek ein Standardanbieter verwendet. Das Standardverhalten ist so definiert:
    • Alle ausgewählten Emojis werden pro App-Ebene in den gemeinsamen Einstellungen gespeichert.
    • In der Auswahl werden maximal drei Zeilen mit ausgewählten Emojis in umgekehrter chronologischer Reihenfolge angezeigt.
  • Die Klasse EmojiViewItem, die das angezeigte Emoji und seine Varianten enthält.
  • Die RecentEmojiProvider-Schnittstelle, die implementiert werden kann, um eine Liste der zuletzt verwendeten Emojis bereitzustellen. Die recentEmojiProvider ist für die Bereitstellung von Emojis in der Kategorie „Kürzlich verwendet“ verantwortlich.
  • Die RecentEmojiAsyncProvider-Schnittstelle, die implementiert werden kann, um eine Liste der zuletzt verwendeten Emojis bereitzustellen. Die RecentEmojiAsyncProvider ist für die Bereitstellung von Emojis in der Kategorie „Kürzlich verwendet“ verantwortlich. Diese Schnittstelle entspricht RecentEmojiProvider, mit der Clients die getRecentEmojiListAsync()-Methode überschreiben können, um aktuelle Emojis bereitzustellen.
  • Die Klasse RecentEmojiProviderAdapter, die ein Adapter für RecentEmojiAsyncProvider ist und RecentEmojiProvider implementiert.

Version 1.4.0-alpha01

22. März 2023

androidx.emoji2:emoji2-*:1.4.0-alpha01 wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Tests korrigieren, Flake-Tests deaktivieren und Bereinigungen durchführen.

Version 1.3

Version 1.3.0

22. März 2023

androidx.emoji2:emoji2-*:1.3.0 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • Mit dieser Version kann die Emoji2-Integration für Compose Foundation 1.4.0 und höher aktiviert werden.
  • Außerdem sind Funktionen zum Ersetzen von EmojiSpans durch benutzerdefinierten Zeichencode sowie Unterstützung für auf Android definierte Emoji-Ausschlüsse möglich.

Version 1.3.0-rc01

8. März 2023

androidx.emoji2:emoji2-*:1.3.0-rc01 wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Neue Funktionen

  • Diese Version unterstützt die Integration von Emoji2 Compose.

API-Änderungen

  • Spans für benutzerdefinierten Zeichencode ersetzen
  • Systemausschlüsse abfragen

Fehlerkorrekturen

  • Außerdem wurde ein Fehler behoben, bei dem Hintergrundspannen nicht korrekt hinter EmojiSopans angewendet wurden.

Version 1.3.0-beta03

23. Februar 2023

androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 und androidx.emoji2:emoji2-views-helper:1.3.0-beta03 sind veröffentlicht.

22. Februar 2023

androidx.emoji2:emoji2:1.3.0-beta03 wird veröffentlicht. Version 1.3.0-beta03 enthält diese Commits.

Neue Funktionen

  • Keine Änderungen Mit dieser Version wird die Integration von Compose vorbereitet.

Version 1.3.0-beta02

8. Februar 2023

androidx.emoji2:emoji2-*:1.3.0-beta02 wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.

Neue Funktionen

  • In diesem Release wird die Unterstützung für die Compose-Integration stabilisiert.

Version 1.3.0-beta01

25. Januar 2023

androidx.emoji2:emoji2-*:1.3.0-beta01 wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

Neue Funktionen

  • Systemausschlüsse abfragen
  • Ersetzen der Spans für benutzerdefinierten Zeichencode.
  • Außerdem wurde ein Fehler behoben, bei dem Hintergrundspannen nicht korrekt hinter EmojiSopans angewendet wurden.
  • In dieser Version werden APIs hinzugefügt, die für die Unterstützung von EmojiCompat in Compose erforderlich sind. Die Unterstützung für das Verfassen von Emojis wird in einer der nächsten Versionen erwartet.

Version 1.3.0-alpha01

11. Januar 2023

androidx.emoji2:emoji2-*:1.3.0-alpha01 wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue APIs für Interaktionen auf niedriger Ebene

  • Systemausschlüsse abfragen
  • Spans für benutzerdefinierten Zeichencode ersetzen
  • Außerdem wurde ein Fehler behoben, bei dem Hintergrundspannen nicht korrekt hinter EmojiSopans angewendet wurden.
  • In dieser Version werden APIs hinzugefügt, die für die Unterstützung von EmojiCompat in Compose erforderlich sind. Die Unterstützung für das Verfassen von Emojis wird in einer der nächsten Versionen erwartet.

API-Änderungen

  • Die Möglichkeit, Systemausschlüsse abzufragen, wurde TypefaceEmojiRasterizer hinzugefügt. (I5653e)
  • Die neue API EmojiCompat.SpanFactory wurde hinzugefügt, um das Standardverhalten von EmojiSpan durch benutzerdefinierten Code für das Zeichnen und Anpassen der Größe zu ersetzen. (Ib69d9)
  • „Verfassen“ um EmojiCompat erweitert (I96f37, b/139326806)

Fehlerkorrekturen

Version 1.2

Version 1.2.0

10. August 2022

androidx.emoji2:emoji2-*:1.2.0 wird veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

Dies ist ein Bugfix-Release. Seit Version 1.1.0 wurden keine neuen Funktionen oder APIs hinzugefügt.

Bei Apps, die PrecomputedText oder TextView.setText(char[]) verwenden, sollte jedoch ein Upgrade auf diese Version priorisiert werden.

Folgende Fehler wurden behoben:

  • Emoji2 fügt PrecomputedText Emojis hinzu, indem das zuvor berechnete Textlayout verworfen wird. (I47d06, b/211231958)
  • Backport des Editor-Absturz-Fix von Android P auf EditText, das für die Verwendung von Emoji2 konfiguriert ist. (Ifd709, b/216891011)
  • Ein Absturz wurde behoben, der auftrat, wenn emoji2 die Schriftart geladen hat und TextView.setText(char[]) verwendet wurde. (Id511e, b/206859724)

Version 1.2.0-rc01

27. Juli 2022

androidx.emoji2:emoji2-*:1.2.0-rc01 wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

  • Keine Änderungen seit der letzten Betaversion.

Version 1.2.0-beta01

13. Juli 2022

androidx.emoji2:emoji2-*:1.2.0-beta01 wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Keine Änderungen gegenüber der letzten Version (diese Version dient zur Unterstützung der AppCompat-Version).

Version 1.2.0-alpha04

20. April 2022

androidx.emoji2:emoji2-*:1.2.0-alpha04 wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.

Neue Funktionen

  • In diesem Release gibt es keine Änderungen.

Version 1.2.0-alpha03

6. April 2022

androidx.emoji2:emoji2-*:1.2.0-alpha03 wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Keine Änderungen gegenüber der letzten Version (diese Version dient zur Unterstützung der AppCompat-Version).

Version 1.2.0-alpha02

23. März 2022

androidx.emoji2:emoji2-*:1.2.0-alpha02 wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Mit Emoji2 werden Emojis zu PrecomputedText hinzugefügt, indem das zuvor vorab berechnete Textlayout verworfen wird. (I47d06, b/211231958)
  • Backport des Editor-Absturz-Fix von Android P zu EditText, das für die Verwendung von Emoji2 konfiguriert ist. (Ifd709, b/216891011)
  • Ein Absturz wurde behoben, der auftrat, wenn mit emoji2 eine Schriftart geladen wurde und TextView.setText(char[]) verwendet wurde. (Id511e, b/206859724)

Version 1.2.0-alpha01

23. Februar 2022

androidx.emoji2:emoji2-*:1.2.0-alpha01 wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Keine Änderungen seit Version 1.1.0.

1,1

Version 1.1.0

23. Februar 2022

androidx.emoji2:emoji2-*:1.1.0 wird veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • emoji2-bundled enthält die Emoji 14-Schriftart
  • Die neue getEmojiMatch API gibt genaue Informationen für Tastaturen zurück, um zu entscheiden, wie ein Emoji angezeigt wird, wenn eine Emoji-kompatible Schriftart vorhanden ist, die hinter der Systemschriftart liegt.
  • Fehlerkorrektur für NumberKeyListener, durch die Zeichen bei der Zifferneingabe korrekt gefiltert werden.

Version 1.1.0-rc01

9. Februar 2022

androidx.emoji2:emoji2-*:1.1.0-rc01 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

Keine Änderungen gegenüber der Betaversion.

Neue Funktionen im Vergleich zu emoji2 1.0.0:

  • emoji2-bundled enthält die Emoji 14-Schriftart
  • Die neue getEmojiMatch API gibt genaue Informationen für Tastaturen zurück, um zu entscheiden, wie ein Emoji angezeigt wird, wenn eine Emoji-kompatible Schriftart vorhanden ist, die hinter der Systemschriftart liegt.
  • Fehlerkorrektur für NumberKeyListener, durch die Zeichen bei der Zifferneingabe korrekt gefiltert werden

Version 1.1.0-beta01

26. Januar 2022

androidx.emoji2:emoji2-*:1.1.0-beta01 wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • androidx-emoji2 beta01-Release. Keine Änderungen gegenüber Alpha01 (Ic61d9)

Version 1.1.0-alpha01

15. Dezember 2021

androidx.emoji2:emoji2-*:1.1.0-alpha01 wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • emoji2-bundled enthält die Emoji 14-Schriftart
  • Die neue getEmojiMatch API gibt genaue Informationen für Tastaturen zurück, um zu entscheiden, wie ein Emoji angezeigt wird, wenn eine Emoji-kompatible Schriftart vorhanden ist, die hinter der Systemschriftart liegt.
  • Fehlerkorrektur für NumberKeyListener, durch die Zeichen bei der Zifferneingabe korrekt gefiltert werden

API-Änderungen

  • Neue API getEmojiMatch hinzugefügt, damit Tastaturen das Verhalten von Emoji-Übereinstimmungen in „emojicompat“ genauer nachschlagen können.
  • hasEmojiGlyph wird eingestellt, da der boolesche Rückgabewert ungenau ist, wenn er für einen Test mit einer Schriftart verwendet wird, die älter als die Emoji-Schriftart der Plattform ist. Ersetzen Sie den Text durch getEmojiMatch. (Ie693d)

Fehlerkorrekturen

  • Emoji2 umschließt keine Instanzen von NumberKeyListener, sodass das Gebietsschema von TextView konfiguriert werden kann.
  • AppCompat umschließt keine Instanzen von NumberKeyListener, die an setKeyListener übergeben werden. So kann TextView das Gebietsschema für NumberKeyListeners richtig konfigurieren. (Ibf113, b/207119921)

1.0

Version 1.0.1

15. Dezember 2021

androidx.emoji2:emoji2-*:1.0.1 wird veröffentlicht. Version 1.0.1 enthält diese Commits.

Fehlerkorrekturen

  • Emoji2 umschließt keine Instanzen von NumberKeyListener, sodass das Gebietsschema von TextView konfiguriert werden kann.
  • AppCompat umschließt keine Instanzen von NumberKeyListener, die an setKeyListener übergeben werden. So kann TextView das Gebietsschema für NumberKeyListeners richtig konfigurieren. (Ibf113, b/207119921)

Version 1.0.0

17. November 2021

androidx.emoji2:emoji2-*:1.0.0 wird veröffentlicht. Version 1.0.0 enthält diese Commits.

Wichtige Funktionen von Version 1.0.0

androidx.emoji2 ersetzt androidx.emoji und bietet zusätzliche Funktionen:

  • Reduzierung der APK-Größe im Vergleich zu androidx.emoji
  • Automatische Konfiguration
  • Als Abhängigkeit zu appcompat 1.4 hinzugefügt

Weitere Informationen zu androidx.emoji2 finden Sie unter Unterstützung moderner Emojis und in unserem Android Dev Summit-Vortrag Displaying ALL the emojis in your app Android Dev.

Version 1.0.0-rc01

27. Oktober 2021

androidx.emoji2:emoji2-*:1.0.0-rc01 wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

  • Keine Änderungen seit Beta02.

Emoji2 Version 1.0.0-beta01

15. September 2021

androidx.emoji2:emoji2-*:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • setLoadingExecutor wurde zu FontRequestEmojiCompatConfig hinzugefügt und ersetzt die bisherige API setHandler. Mit dieser API können Apps FontRequestEmojiCompatConfig so konfigurieren, dass ein beliebiger Hintergrund-Executor verwendet wird.

    Diese Änderung ist eine funktionsgefährdende Änderung von androidx.emoji:emoji. Daher wird setHandler als inaktive, verworfene API beibehalten, um die Migration zu erleichtern. (I6cd48)

  • EmojiCompat legt EditorInfo.extras unter Android 11 korrekt fest

    • Benutzerdefinierte Widgets, die IME verwenden und nicht von EditText abgeleitet sind, können EmojiCompat.updateEditorInfo aufrufen, um IME mitzuteilen, dass sie die EmojiCompat-Verarbeitung unterstützen. (I1ea9b)

Fehlerkorrekturen

  • Das Problem mit DefaultEmojiCompatConfig wurde behoben, sodass der Anbieter von Emoji-Schriftarten in API 19 und 28 korrekt gesucht wird. Damit wird ein Fehler behoben, der in emoji2 1.0.0-alpha01 eingeführt wurde. (Ib33d8, b/197906329)

Version 1.0.0-alpha03

30. Juni 2021

androidx.emoji2:emoji2-*:1.0.0-alpha03 wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Neue Funktionen

Diese Version enthält Fehlerkorrekturen und Stabilitätsverbesserungen.

  1. Mit EmojiEditTextHelper kann jetzt null als KeyListener übergeben werden. Dadurch kann das Plattformverhalten, das Nullwerte für EditText-Implementierungen mit Emoji-Unterstützung zulässt, angewendet werden.
  2. Bei Verwendung von EmojiCompatInitializer wurde die anfängliche Startverzögerung verbessert, sodass sie erst nach dem Fortsetzen der ersten Aktivität ausgelöst wird. So kann die App ohne Konflikte gestartet werden und die Schriftart wird nicht für App-Starts geladen, bei denen keine Benutzeroberfläche angezeigt wird. Nach einer kurzen Verzögerung erstellt EmojiCompat einen Thread zum Laden der Emoji-Schriftart.
  • Um die Verzögerung zu implementieren, wird eine neue Abhängigkeit von androidx.lifecycle:lifecycle-process von androidx.emoji2:emoji2 hinzugefügt. Bei Apps, die bereits Lifecycle-Komponenten enthalten (z. B. Apps mit AppCompat), hat dies nur geringe Auswirkungen auf die APK-Größe.

API-Änderungen

  • Null-KeyListener in AppCompatEditText zulassen. Dadurch wird die Non-Null-Annotation, die AppCompatEditText in Version 1.4.0-alpha01 hinzugefügt wurde, rückgängig gemacht und das vorherige Verhalten beim Übergeben von „null“ wiederhergestellt. (I21482, b/189559345)

Fehlerkorrekturen

  • Ändern Sie EmojiCompatInitializer so, dass das Laden von Schriftarten bis 500 ms nach dem ersten Activity.onResume verzögert wird. So kann eine Aktivität Application.onCreate und Activity.onCreate ohne Konflikte ausführen, während gleichzeitig dafür gesorgt wird, dass die Emoji-Schriftart kurz nach dem Start der App geladen wird. (I4bff7)

Version 1.0.0-alpha02

2. Juni 2021

androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 und androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

  • Das Paket in emoji2-views-helper wurde in androidx.emoji2.viewsintegration umbenannt. Dies ist eine wichtige Änderung für AppCompat 1.4.0-alpha01. Apps müssen dafür sorgen, dass die AppCompat-Abhängigkeit aktualisiert wird, um die neue Emoji2-Version zu verwenden. (Ie8397)

Version 1.0.0-alpha01

18. Mai 2021

androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 und androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 sind veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Funktionen in dieser ersten Version

Die Integration von „emojicompat“ wird für alle Apps empfohlen, um moderne Emojis ab API19 zu unterstützen. Alle von Nutzern erstellten Inhalte in Ihrer App enthalten 🎉.

EmojiCompat wurde von den androidx.emoji-Artefakten zu den neuen androidx.emoji2-Artefakten verschoben, die jetzt in Alpha01 verfügbar sind. Die neuen Artefakte ersetzen die vorherige Version.

emoji2 wird ab AppCompat 1.4.0-alpha01 als Abhängigkeit zu AppCompat hinzugefügt und ist standardmäßig für AppCompat-Ansichten aktiviert.

Das emoji2-Artefakt führt eine neue automatische Konfiguration mit der androidx.startup-Bibliothek ein. Sie müssen keinen 👨🏽‍💻 Code mehr schreiben, um 🐻‍❄️ anzuzeigen.

Änderungen bei emoji2 im Vergleich zu emoji

  • Neue automatische Konfiguration EmojiCompatInitializer mit androidx.startup hinzugefügt.
  • Es wurde eine neue Standardkonfiguration hinzugefügt, die den Dienststandort verwendet, um einen Anbieter herunterladbarer Schriftarten in DefaultEmojiCompatConfiguration zu finden.
  • Klassen wurden vom Paket androidx.emoji in das Paket androidx.emoji2 verschoben.
  • Teilen Sie EmojiTextView und zugehörige Ansichten in ein separates Artefakt emoji2-views auf. Diese Option sollte nur verwendet werden, wenn Ihre App nicht AppCompat verwendet.
  • Extrahierte Hilfsklassen für die Integration von „emojicompat“ in benutzerdefinierte Ansichten in ein separates Artefakt emoji2-views-helper.
  • Es wurden Anmerkungen zur Null-Zulässigkeit hinzugefügt.
  • Helfer in emoji2-views-helper können jetzt auch verwendet werden, wenn EmojiCompat nicht initialisiert ist. Bisher wurde in diesem Fall eine Ausnahme ausgelöst.

Welche Abhängigkeit sollten Sie hinzufügen?

  • Apps mit AppCompat sollten auf die AppCompat-Version AppCompat 1.4.0-alpha01 oder höher aktualisiert werden.
  • Apps ohne AppCompat, die TextView/EditText von der Plattform verwenden, sollten EmojiTextView und zugehörige Klassen aus emoji2-views verwenden.

Support in benutzerdefinierten Ansichten

  • Apps mit AppCompat sollten AppCompatTextView, AppCompatButton usw. anstelle von TextView usw. der Plattform erweitern.
  • Bei Apps ohne AppCompat sollte die androidx.emoji2:emoji2-views-helper-Abhängigkeit hinzugefügt und Helfer verwendet werden, um die Integration in benutzerdefinierte TextView- oder EditText-Unterklassen zu ermöglichen.

Automatische Initialisierung konfigurieren

  • Apps können die automatische Initialisierung deaktivieren, indem sie Folgendes in das Manifest einfügen:

     <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>
    
  • Dadurch wird die automatische Konfiguration deaktiviert und Sie können eine benutzerdefinierte Konfiguration an EmojiCompat.init übergeben. Die Standardkonfiguration für das System kann DefaultEmojiCompatConfig.create(context) abgerufen werden, um sie weiter zu konfigurieren, bevor sie an EmojiCompat.init übergeben wird.