Selektor emotikonów

Selektor emotikonów to rozwiązanie interfejsu, które zapewnia nowoczesny wygląd i styl, a także jest proste w obsłudze i ma aktualne emotikony. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty, a także wybierać spośród ostatnio używanych.

Rysunek 1. Selektor emotikonów

Dzięki tej bibliotece aplikacje z różnych źródeł mogą zapewnić użytkownikom integrację społeczną i ujednolicić obsługę emotikonów bez konieczności tworzenia i utrzymywania od podstaw własnego selektora emotikonów.

Funkcje

Aktualne emotikony

Nowo wydane emotikony są selektywnie uwzględniane w selektorze emotikonów. Biblioteka selektora emotikonów jest zgodna z wymaganiami dotyczącymi wielu wersji Androida i urządzeń z Androidem.

Wersje przyklejone

Przytrzymaj emotikon, aby wyświetlić menu wariantów, np. różnych płci lub odcieni skóry. Wybrana odmiana jest zapisywana w selektorze emotikonów, a ostatnia wybrana opcja jest używana w panelu głównym.

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

warianty emotikonów
Rysunek 2. Wersje emotikonów

Najnowsze emotikony

ostatnie emotikony
Rysunek 3. Ostatnie emotikony

Za udostępnianie emotikonów w kategorii Ostatnio używane odpowiada RecentEmojiProvider. Biblioteka ma domyślnego dostawcę najnowszych emotikonów, który spełnia najczęstsze przypadki użycia:

  • Wszystkie wybrane emotikony są zapisywane dla poszczególnych aplikacji w udostępnianych preferencjach.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów, po usunięciu duplikatów, w odwrotnej kolejności chronologicznej.

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

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

  • Chcesz przechowywać różne wybrane emotikony na każdym koncie użytkownika.
  • Chcesz używać miejsca na dane inne niż współdzielone ustawienia.
  • Chcesz wyświetlić ostatnie emotikony posortowane według częstotliwości.

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

Zgodność z usługą EmojiCompat

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

Wymagania wstępne

Aplikacja musi być kierowana na Androida 5.0 (poziom 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. Ulepsz widok Selektor emotikonów i opcjonalnie ustaw emojiGridRows oraz emojiGridColumns.

    • Domyślna liczba emojiGridColumns to 9.
    • Liczba wierszy jest obliczana na podstawie wysokości widoku nadrzędnego i wartości emojiGridColumns.
    • Używaj w polu emojiGridRows wartości zmiennoprzecinkowej, aby wskazać, że użytkownik może przewinąć 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 operatora 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ć typowe atrybuty motywu i zastosować go do elementu EmojiPickerView. Na przykład zastąpienie colorControlNormal zmieni 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 selektora emotikonów przedstawia podstawowe przypadki użycia oraz te dodatkowe scenariusze:

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