Pemilih Emoji

Pemilih Emoji adalah solusi UI yang menawarkan tampilan dan nuansa modern, emoji terbaru, dan kemudahan penggunaan. Pengguna dapat menjelajahi dan memilih emoji beserta variannya, atau memilih emoji yang baru saja digunakan.

Gambar 1. Pemilih Emoji

Dengan library ini, aplikasi dari berbagai sumber dapat memberikan pengalaman emoji yang inklusif dan terpadu kepada pengguna tanpa mengharuskan developer membuat dan mengelola pemilih emoji mereka sendiri dari awal.

Fitur

Emoji Terbaru

Emoji yang baru dirilis disertakan secara selektif dalam Pemilih Emoji. Library Pemilih Emoji kompatibel di beberapa versi dan perangkat Android.

Varian melekat

Tekan lama emoji untuk menampilkan menu varian, seperti gender atau warna kulit yang berbeda. Varian yang Anda pilih akan disimpan di Pemilih Emoji, dan varian terakhir yang dipilih akan digunakan di panel utama.

Dengan fitur ini, pengguna dapat mengirim varian emoji pilihan mereka dengan sekali ketuk.

varian emoji
Gambar 2. Varian emoji

Emoji terbaru

emoji terbaru
Gambar 3. Emoji terbaru

RecentEmojiProvider bertanggung jawab menyediakan emoji dalam kategori Baru Digunakan. Library ini memiliki penyedia emoji terbaru default yang memenuhi kasus penggunaan paling umum:

  • Semua emoji yang dipilih akan disimpan per aplikasi dalam preferensi bersama.
  • Alat pilih menampilkan maksimal 3 baris emoji yang dipilih, yang dihapus duplikatnya, dalam urutan kronologis terbalik.

Jika perilaku default ini sudah memadai, Anda tidak perlu menggunakan setRecentEmojiProvider().

Namun, Anda mungkin perlu menyesuaikan perilaku penyedia. Berikut ini beberapa skenario umum:

  • Anda ingin menyimpan berbagai emoji yang dipilih per akun pengguna.
  • Anda ingin menggunakan penyimpanan data selain preferensi bersama.
  • Anda ingin menampilkan emoji terbaru yang diurutkan menurut frekuensi.

Selanjutnya, Anda dapat mengimplementasikan antarmuka RecentEmojiProvider dan menyetelnya menggunakan setRecentEmojiProvider().

Kompatibilitas dengan EmojiCompat

Jika diaktifkan, instance EmojiCompat akan digunakan di Pemilih Emoji untuk merender emoji sebanyak mungkin. Namun, Pemilih Emoji tidak memerlukan EmojiCompat.

Prasyarat

Aplikasi Anda harus menargetkan Android 5.0 (API level 21) atau yang lebih tinggi.

Menggunakan library

  1. Impor androidx.emoji2:emojipicker:$version di file build.gradle aplikasi Anda.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Meng-inflate tampilan Pemilih Emoji, serta menyetel emojiGridRows dan emojiGridColumns secara opsional.

    • Jumlah default emojiGridColumns adalah 9.
    • Jumlah baris dihitung berdasarkan tinggi tampilan induk dan nilai emojiGridColumns.
    • Gunakan nilai float untuk emojiGridRows guna menunjukkan bahwa pengguna dapat men-scroll ke bawah untuk menemukan lebih banyak emoji.
    <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. Gunakan setOnEmojiPickedListener() untuk menambahkan emoji yang dipilih ke tampilan. Misalnya, untuk menambahkan ke EditText, lakukan hal berikut:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. Jika perlu, setel RecentEmojiProvider, lihat aplikasi contoh untuk contoh implementasi.

  5. Sesuaikan gaya (opsional). Buat gaya Anda sendiri untuk mengganti atribut tema umum dan terapkan gaya tersebut ke EmojiPickerView. Misalnya, mengganti colorControlNormal akan mengubah warna ikon kategori.

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

Aplikasi Contoh

Aplikasi contoh Pemilih Emoji menunjukkan kasus penggunaan dasar beserta skenario tambahan berikut:

  • Perhitungan ulang tata letak saat emojiGridRows atau emojiGridColumns direset.
  • Penyedia emoji terbaru yang diganti yang mengurutkan berdasarkan frekuensi.
  • Penyesuaian gaya tambahan.