أداة اختيار الرموز التعبيرية

"أداة اختيار رموز الإيموجي" هي حل لواجهة المستخدم يوفّر مظهرًا وطابعًا عصريَين ورموزًا تعبيرية محدّثة وسهولة الاستخدام. يمكن للمستخدمين تصفح وتحديد الرموز التعبيرية وصيغها أو الاختيار من بين الرموز التعبيرية المستخدمة مؤخرًا.

الشكل 1. أداة اختيار الرموز التعبيرية

وبفضل هذه المكتبة، أصبح بإمكان التطبيقات التابعة لمجموعة متنوّعة من المصادر توفير تجربة شاملة وموحّدة للرموز التعبيرية بدون أن يحتاج المطوّرون إلى إنشاء وصيانة أداة اختيار رموز الإيموجي من البداية.

الميزات

الرموز التعبيرية المحدَّثة

يتم تضمين الرموز التعبيرية الصادرة حديثًا بشكل انتقائي في "أداة اختيار الرموز التعبيرية". تتوافق مكتبة "أداة اختيار الرموز التعبيرية" مع العديد من إصدارات وأجهزة Android.

خيارات المنتجات الثابتة

اضغط مع الاستمرار على الرمز التعبيري لعرض قائمة بخيارات المنتج، مثل الأنواع المختلفة من الجنس وألوان البشرة. يتم حفظ الصيغة التي تختارها في "أداة اختيار الرموز التعبيرية"، ويتم استخدام آخر صيغة محدّدة في اللوحة الرئيسية.

باستخدام هذه الميزة، يمكن للمستخدمين إرسال خياراتهم المفضّلة من الرموز التعبيرية بنقرة واحدة.

خيارات الرموز التعبيرية
الشكل 2. صيغ الرموز التعبيرية

الرموز التعبيرية المستخدَمة حديثًا

رمز تعبيري حديث
الشكل 3. الرموز التعبيرية الأخيرة

تقع على عاتق RecentEmojiProvider مسؤولية توفير الرموز التعبيرية في فئة الصور المستخدمة مؤخرًا. تحتوي المكتبة على موفر افتراضي للرموز التعبيرية حديث يستوفي حالة الاستخدام الأكثر شيوعًا:

  • تم حفظ جميع الرموز التعبيرية المحددة لكل تطبيق في الإعدادات المفضّلة المشتركة.
  • تعرض أداة الاختيار ما لا يزيد عن 3 صفوف من الرموز التعبيرية المحددة، والتي تمت إزالة تكرارها، بترتيب زمني عكسي.

إذا كان هذا الإجراء التلقائي كافيًا، لن تحتاج إلى استخدام setRecentEmojiProvider().

ومع ذلك، قد تحتاج إلى تخصيص سلوك مقدّم الخدمة. فيما يلي بعض السيناريوهات الشائعة:

  • في حال أردت تخزين رموز تعبيرية محدَّدة مختلفة لكل حساب مستخدم
  • تريد استخدام مخزن البيانات بخلاف الإعدادات المفضّلة المشتركة.
  • تريد عرض الرموز التعبيرية الأخيرة مرتّبة حسب التكرار.

يمكنك بعد ذلك تنفيذ واجهة RecentEmojiProvider وضبطها باستخدام setRecentEmojiProvider().

التوافق مع EmojiCompat

في حال تفعيل السياسة، يتم استخدام مثيل EmojiCompat في "أداة اختيار الرموز التعبيرية" لعرض أكبر عدد ممكن من الرموز التعبيرية. ومع ذلك، لا تتطلّب "أداة اختيار الرموز التعبيرية" EmojiCompat.

المتطلّبات الأساسية

يجب أن يستهدف تطبيقك الإصدار Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

استخدام المكتبة

  1. استورِد "androidx.emoji2:emojipicker:$version" ضمن ملف build.gradle في تطبيقك.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. يمكنك تضخيم طريقة عرض "أداة اختيار الرموز التعبيرية"، ويمكنك اختياريًا ضبط emojiGridRows وemojiGridColumns.

    • العدد التلقائي لـ emojiGridColumns هو 9.
    • يتم احتساب عدد الصفوف استنادًا إلى ارتفاع العرض الرئيسي وقيمة emojiGridColumns.
    • استخدِم قيمة عائمة للسمة emojiGridRows للإشارة إلى أنّ المستخدم يمكنه الانتقال للأسفل لعرض المزيد من الرموز التعبيرية.
    <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. يمكنك استخدام setOnEmojiPickedListener() لإلحاق الرموز التعبيرية المحددة بطريقة عرض. على سبيل المثال، للإلحاق بـ EditText، يمكنك اتّباع الخطوات التالية:

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. يمكنك ضبط RecentEmojiProvider بشكل اختياري، ويمكنك الاطّلاع على نموذج تطبيق للاطّلاع على مثال لعملية التنفيذ.

  5. يمكنك تخصيص الأنماط اختياريًا. أنشئ نمطًا خاصًا لإلغاء سمات المظهر الشائعة وطبّق النمط على EmojiPickerView. على سبيل المثال، يؤدي إلغاء colorControlNormal إلى تغيير لون رمز الفئة.

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

نموذج التطبيق

يوضح نموذج تطبيق "أداة اختيار الرموز التعبيرية" حالات الاستخدام الأساسية إلى جانب السيناريوهات الإضافية التالية:

  • إعادة احتساب التنسيق عند إعادة ضبط emojiGridRows أو emojiGridColumns.
  • تم تجاهل مقدِّم رموز تعبيرية حديث يتم الترتيب حسب معدّل التكرار.
  • تخصيص إضافي للنمط.