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

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

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

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

الميزات

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

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

الصيغ الثابتة

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

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

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

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

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

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

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

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

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

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

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

التوافق مع EmojiCompat

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

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

يجب أن يستهدف تطبيقك الإصدار 5.0 من نظام التشغيل Android (المستوى 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() لإلحاق الرموز التعبيرية المحدّدة بطريقة عرض. على سبيل المثال، لإضافة عنوان URL إلى 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
  • مزوّد رموز تعبيرية تم إلغاء استخدامه مؤخرًا ويرتّب البيانات حسب معدّل التكرار.
  • تخصيص النمط الإضافي.