Selektor emotikonów

Selektor emotikonów to interfejs, który zapewnia nowoczesny wygląd i styl, aktualne emotikony oraz łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybierać te, które były ostatnio używane.

Rysunek 1. Selektor emotikonów

Dzięki tej bibliotece aplikacje z różnych źródeł mogą zapewniać użytkownikom spójną i inkluzywną obsługę bez konieczności tworzenia i utrzymywania od podstaw własnego selektora emotikonów.

Funkcje

Aktualne emotikony

Niedawno opublikowane emotikony są dodawane do selektora emotikonów. Biblioteka selektora emotikonów jest zgodna z różnymi wersjami Androida i urządzeń.

Wersje przyklejone

Przytrzymaj emotikon, aby wyświetlić menu wariantów, np. różne płcie lub odcienie skóry. Wybrany wariant jest zapisywany w selektorze emotikonów, a ostatnio wybrany wariant jest używany w panelu głównym.

Dzięki tej funkcji użytkownicy mogą wysyłać preferowane warianty emotikon jednym kliknięciem.

warianty emotikonów
Rysunek 2. Wersje emotikonów

Najnowsze emotikony

najnowsze emotikony
Rysunek 3. Najnowsze emotikony

RecentEmojiProvider odpowiada za udostępnianie emotikonów z kategorii Ostatnio używane. W bibliotece jest domyślnego dostawcę emotikonów, który spełnia najczęstszy przypadek użycia:

  • Wszystkie wybrane emotikony są zapisywane w ustawieniach wspólnych dla poszczególnych aplikacji.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów (z usuniętymi duplikatami) w odwrotnej kolejności chronologicznej.

Jeśli to domyślne działanie jest wystarczające, nie musisz używać setRecentEmojiProvider().

Może być jednak konieczne dostosowanie działania dostawcy. Oto kilka typowych scenariuszy:

  • Chcesz przechowywać różne wybrane emotikony na poszczególnych kontach użytkowników.
  • Chcesz używać pamięci masowej innych niż ustawienia wspólne.
  • Chcesz wyświetlić ostatnie emotikony posortowane według częstotliwości.

Następnie możesz zaimplementować interfejs RecentEmojiProvider i skonfigurować go za pomocą setRecentEmojiProvider().

Zgodność z EmojiCompat

Jeśli ta opcja jest włączona, wystąpienie EmojiCompat jest używane w selektorze emotikonów do renderowania jak największej liczby emotikonów. Selektor emotikonów nie wymaga jednak parametru EmojiCompat.

Wymagania wstępne

Aplikacja musi być kierowana na Androida 5.0 (poziom interfejsu API 21) lub nowszego.

Korzystanie z biblioteki

  1. Zaimportuj androidx.emoji2:emojipicker:$version do pliku build.gradle aplikacji.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Rozszerz widok selektora emotikonów i opcjonalnie ustaw emojiGridRows oraz emojiGridColumns.

    • Wartość domyślna parametru emojiGridColumns to 9.
    • Liczba wierszy jest obliczana na podstawie wysokości widoku nadrzędnego i wartości emojiGridColumns.
    • Użyj wartości zmiennoprzecinkowej emojiGridRows, aby wskazać, że użytkownik może przewinąć ekran w dół, aby zobaczyć więcej emotikonów.
    <androidx.emoji2.emojipicker.EmojiPickerView
        android:id="@+id/emoji_picker"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:emojiGridColumns="9" />
    
    val emojiPickerView = EmojiPickerView(context).apply {
        emojiGridColumns = 15
        layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
        )
    }
    
    findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
    
  3. Użyj setOnEmojiPickedListener(), aby dołączyć wybrane emotikony do widoku. Aby na przykład dołączyć do elementu EditText, wykonaj te czynności:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. Opcjonalnie ustaw RecentEmojiProvider. Przykład implementacji znajdziesz w przykładowej aplikacji.

  5. Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić wspólne atrybuty motywu i zastosować go do EmojiPickerView. Na przykład zastąpienie atrybutu colorControlNormal zmienia kolor 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ładowa aplikacja

Przykładowa aplikacja do wyboru emotikonów pokazuje podstawowe przypadki użycia oraz dodatkowo te dodatkowe scenariusze:

  • Ponowne obliczenie układu po zresetowaniu elementów emojiGridRows lub emojiGridColumns.
  • Zastąpiony dostawca emotikonów, który sortuje według częstotliwości.
  • Dodatkowe dostosowywanie stylu.