Emoji Seçici

Emoji Seçici, modern bir görünüm ve his, güncel emojiler ve kullanım kolaylığı sunan bir kullanıcı arayüzü çözümüdür. Kullanıcılar emojilere ve varyantlarına göz atıp seçim yapabilir ya da en son kullandıkları emojilerden birini seçebilir.

Şekil 1. Emoji Seçici

Bu kitaplıkla, çeşitli kaynaklardan gelen uygulamalar kullanıcılarına kapsayıcı ve birleşik bir emoji deneyimi sunabilir. Bu sayede geliştiricilerin sıfırdan kendi emoji seçicilerini oluşturması ve sürdürmesi gerekmez.

Özellikler

Emoji seçicide aşağıdaki özellikler bulunur.

Güncel emoji

Yeni yayınlanan emojiler, Emoji Seçici'ye seçerek eklenir. Emoji Seçici kitaplığı, birden fazla Android sürümü ve cihazla uyumludur.

Yapışkan varyantlar

Farklı cinsiyetler veya ten tonları gibi varyantların bulunduğu menüyü görüntülemek için bir emojiye uzun basın. Seçtiğiniz varyant Emoji Seçici'ye kaydedilir ve ana panelde en son seçilen varyant kullanılır.

Bu özellik sayesinde kullanıcılar tercih ettikleri emoji varyantlarını tek dokunuşla gönderebilir.

emoji varyantları
Şekil 2. Emoji varyantları.

Son kullanılan emojiler

son emoji
Şekil 3. Son kullanılan emojiler.

RecentEmojiProvider, Son Kullanılanlar kategorisinde emoji sağlamakla yükümlüdür. Kitaplıkta, en yaygın kullanım alanını karşılayan varsayılan bir en yeni emoji sağlayıcı bulunur:

  • Seçilen tüm emojiler, paylaşılan tercihlere uygulama başına kaydedilir.
  • Seçici, seçili emojilerden en fazla üç satır gösterir. Bu satırlarda, tekilleştirilmiş emojiler ters kronolojik sırayla gösterilir.

Bu varsayılan davranış yeterliyse setRecentEmojiProvider() kullanmanıza gerek yoktur.

Ancak sağlayıcı davranışını özelleştirmeniz gerekebilir. Aşağıda bazı yaygın senaryolar verilmiştir:

  • Kullanıcı hesabı başına farklı seçili emojiler depolamak istiyorsanız.
  • Paylaşılan tercihler dışında bir veri depolama alanı kullanmak istiyorsanız.
  • Son emojileri sıklığa göre sıralayarak görüntülemek istiyorsunuz.

Ardından RecentEmojiProvider arayüzünü uygulayabilir ve setRecentEmojiProvider() kullanarak ayarlayabilirsiniz.

Yön seçici

Emoji 15.1'den itibaren Emoji Seçici, iki yönlü emojileri destekler. Kullanıcılar, emojinin sol ve sağ bakan sürümleri arasında geçiş yapmak için çift yönlü değiştiriciye dokunabilir.

çift yönlü soldaki emoji

Şekil 4. Sola bakan iki yönlü emoji.

çift yönlü sağ emoji

Şekil 5. Sağa bakan çift yönlü emoji.

Çok kişilik emoji seçici

Kullanıcılar, çift emojilere dokunup basılı tutarak birden fazla kişinin yer aldığı emoji seçimlerini görebilir.

emoji çiftine dokunup basılı tutma

Şekil 6. Birden fazla kişinin yer aldığı emoji seçimlerini görmek için bir emoji çiftine dokunup basılı tutun.

Soldaki emojiye (kişi) dokunun

Şekil 7. Sol yarısı emoji olan bir kişi seçin.

Sağdaki emojiye (kişi) dokunun.

Şekil 8. Sağ yarısı emoji olan bir kişi seçin.

Kullanıcı, bir emoji çiftinin sol veya sağ yarısını seçtiğinde seçici, 7 ve 8. resimlerde gösterildiği gibi sağ altta bir önizleme gösterir. Kullanıcılar, emoji çiftinin her iki yarısını da seçtikten sonra özel emoji çiftini oluşturmak için önizlemeyi seçebilir.

EmojiCompat ile uyumluluk

Etkinleştirilirse mümkün olduğunca çok emoji oluşturmak için Emoji Seçici'de bir EmojiCompat örneği kullanılır. Ancak Emoji Seçici için EmojiCompat gerekli değildir.

Ön koşullar

Uygulamanız Android 5.0 (API düzeyi 21) veya sonraki sürümleri hedeflemelidir.

Kitaplığı kullanma

  1. androidx.emoji2:emojipicker:$version dosyasını uygulamanızın build.gradle dosyasına aktarın.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Emoji Seçici görünümünü genişletin ve isteğe bağlı olarak emojiGridRows ve emojiGridColumns'ı ayarlayın.

    • Varsayılan emojiGridColumns sayısı 9'dur.
    • Satır sayısı, ana görünümün yüksekliğine ve emojiGridColumns değerine göre hesaplanır.
    • Kullanıcının daha fazla emoji görmek için kaydırabileceğini belirtmek üzere emojiGridRows için kayan nokta değeri kullanın.
    <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. Seçilen emojiyi bir görünüme eklemek için setOnEmojiPickedListener() simgesini kullanın. Örneğin, bir EditText öğesine ekleme yapmak için aşağıdakileri yapın:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. İsteğe bağlı olarak RecentEmojiProvider değerini ayarlayın. Uygulamadaki örnek uygulamaya göz atın.

  5. İsterseniz stilleri özelleştirebilirsiniz. Ortak tema özelliklerini geçersiz kılmak için kendi stilinizi oluşturun ve stili EmojiPickerView öğesine uygulayın. Örneğin, colorControlNormal değerini geçersiz kılmak kategori simgesi rengini değiştirir.

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

Sample App

Emoji Seçici örnek uygulaması, temel kullanım alanlarını ve aşağıdaki ek senaryoları gösterir:

  • emojiGridRows veya emojiGridColumns sıfırlandığında düzenin yeniden hesaplanması.
  • Sıklığa göre sıralayan, geçersiz kılınan son emoji sağlayıcı.
  • Ek stil özelleştirmesi.