Seletor de emojis

O seletor de emojis é uma solução de interface que oferece uma aparência moderna e moderna. emojis e facilidade de uso. Os usuários podem procurar e selecionar emojis e as variantes deles ou escolher entre os emojis usados recentemente.

Figura 1. Seletor de emojis
.

Com essa biblioteca, os aplicativos de diversas fontes podem proporcionar um ambiente uma experiência de emoji unificada para os usuários sem que os desenvolvedores precisem criar e manter um seletor de emojis do zero.

Recursos

Emojis atualizados

Os emojis recém-lançados são incluídos de forma seletiva no seletor de emojis. A A biblioteca do seletor de emojis é compatível com várias versões do Android e dispositivos.

Variantes fixas

Toque em um emoji e mantenha-o pressionado para mostrar um menu de variantes, como diferentes gêneros ou tons de pele. A variante escolhida é salva no seletor de emojis, e a última variante selecionada é usada no painel principal.

Com esse recurso, os usuários podem enviar as variantes de emoji preferidas com uma tocar.

variantes de emojis
Figura 2. Variantes de emoji
.

Emoji recente

emoji recente
Figura 3. Emojis recentes
.

O RecentEmojiProvider é responsável por fornecer emojis no Usados recentemente. A biblioteca tem um provedor de emojis recente padrão que satisfaça o caso de uso mais comum:

  • Todos os emojis selecionados são salvos por app nas preferências compartilhadas.
  • O seletor mostra no máximo três linhas de emojis selecionados, com duplicação eliminada e ao contrário em ordem cronológica.

Se esse comportamento padrão for suficiente, não será preciso usar setRecentEmojiProvider():

No entanto, talvez seja necessário personalizar o comportamento do provedor. Confira alguns cenários comuns:

  • Você quer armazenar diferentes emojis selecionados por conta de usuário.
  • Você quiser usar o armazenamento de dados diferente das preferências compartilhadas.
  • Você quer mostrar os emojis recentes classificados por frequência.

Em seguida, você pode implementar a interface RecentEmojiProvider e defini-la usando setRecentEmojiProvider().

Compatibilidade com EmojiCompat

Se ativado, uma instância EmojiCompat será usada no seletor de emojis. para renderizar o máximo de emojis possível. O seletor de emojis não exige EmojiCompat, no entanto.

Pré-requisitos

Seu app precisa ser direcionado ao Android 5.0 (nível 21 da API) ou versões mais recentes.

Usar a biblioteca

  1. Importe androidx.emoji2:emojipicker:$version no build.gradle do seu app .

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Aumente a visualização do seletor de emojis e, se quiser, defina emojiGridRows e emojiGridColumns.

    • O número padrão de emojiGridColumns é 9.
    • A contagem de linhas é calculada com base na altura da visualização pai e no valor emojiGridColumns:
    • Use um valor flutuante para emojiGridRows para indicar que o usuário pode role para baixo para conferir mais emojis.
    <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. Use setOnEmojiPickedListener() para anexar os emojis selecionados a uma visualização. Por exemplo, para anexar a um EditText, faça o seguinte:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. Se quiser, defina RecentEmojiProvider. Confira o app de exemplo para conferir um exemplo implementação.

  5. É possível personalizar estilos. Crie seu próprio estilo para substituir o tema comum. atributos e aplique o estilo à EmojiPickerView. Por exemplo: substituir colorControlNormal muda a cor do ícone da categoria.

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

App de exemplo

O app de exemplo Emoji Picker demonstra casos de uso básicos, além de os seguintes cenários adicionais:

  • Recálculo de layout quando emojiGridRows ou emojiGridColumns são redefinidos.
  • Um provedor de emojis recente substituído que faz a classificação por frequência.
  • Personalização adicional de estilo.