"أداة اختيار الرموز التعبيرية" هي حلّ لواجهة المستخدم يوفّر مظهرًا وطابعًا عصريَين، ورموزًا تعبيرية محدَّثة، وسهولة في الاستخدام. يمكن للمستخدمين تصفُّح واختيار الرموز التعبيرية وخياراتها أو الاختيار من بين الرموز التعبيرية المستخدمة مؤخرًا.
ومن خلال هذه المكتبة، يمكن للتطبيقات من مجموعة متنوّعة من المصادر توفير تجربة رموز تعبيرية شاملة وموحَّدة للمستخدمين بدون الحاجة إلى إنشاء أداة اختيار الرموز التعبيرية الخاصة بهم وصيانتها من البداية.
الميزات
الرموز التعبيرية الحديثة
وتتوفّر الرموز التعبيرية التي تم إصدارها حديثًا بشكل انتقائي في "أداة اختيار الرموز التعبيرية". تتوافق مكتبة "أداة اختيار الرموز التعبيرية" مع العديد من إصدارات وأجهزة Android.
الصيغ الثابتة
اضغط مع الاستمرار على رمز تعبيري لعرض قائمة بخيارات المنتج، مثل الأجناس أو درجات لون البشرة المختلفة. يتم حفظ الخيار الذي تختاره في "أداة اختيار الرموز التعبيرية"، ويتم استخدام آخر صيغة تم تحديدها في اللوحة الرئيسية.
تتيح هذه الميزة للمستخدمين إرسال صِيغ الرموز التعبيرية المفضّلة لديهم بنقرة واحدة.
الرموز التعبيرية الأخيرة
يكون RecentEmojiProvider
مسؤولًا عن توفير الرموز التعبيرية في فئة
المستخدمة مؤخرًا. تحتوي المكتبة على موفِّر رموز تعبيرية تلقائي حديث
يفي بحالة الاستخدام الأكثر شيوعًا:
- يتم حفظ جميع الرموز التعبيرية المحددة لكل تطبيق في الإعدادات المفضّلة المشتركة.
- تعرض أداة الاختيار 3 صفوف كحدّ أقصى من الرموز التعبيرية المحدّدة، بعد إزالة التكرار، بترتيب زمني عكسي.
إذا كان هذا السلوك التلقائي كافيًا، لن تحتاج إلى استخدام
setRecentEmojiProvider()
.
ومع ذلك، قد تحتاج إلى تخصيص سلوك مقدّم الخدمة. إليك بعض السيناريوهات الشائعة:
- تريد تخزين الرموز التعبيرية المحددة المختلفة لكل حساب مستخدم.
- تريد استخدام مساحة تخزين البيانات بخلاف الإعدادات المفضّلة المشتركة.
- تريد عرض الرموز التعبيرية الأخيرة مرتّبة حسب معدّل التكرار.
يمكنك بعد ذلك تنفيذ واجهة RecentEmojiProvider
وإعدادها باستخدام
setRecentEmojiProvider()
.
التوافق مع EmojiCompat
في حال تفعيل هذه الميزة، يتم استخدام مثيل EmojiCompat
في "أداة اختيار الرموز التعبيرية"
لعرض أكبر عدد ممكن من الرموز التعبيرية. ولكن لا تتطلب "أداة اختيار الرموز التعبيرية" استخدام
EmojiCompat
.
المتطلّبات الأساسية
يجب أن يستهدف تطبيقك الإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
استخدام المكتبة
يمكنك استيراد
androidx.emoji2:emojipicker:$version
إلى ملفbuild.gradle
الخاص بتطبيقك.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
تضخيم طريقة عرض "أداة اختيار الرموز التعبيرية"، ويمكنك ضبط
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)
- العدد التلقائي لـ
يمكنك استخدام
setOnEmojiPickedListener()
لإلحاق الرموز التعبيرية المحدّدة بطريقة عرض. على سبيل المثال، لإضافة عنوان URL إلىEditText
، عليك اتّباع الخطوات التالية:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
يمكنك ضبط
RecentEmojiProvider
اختياريًا، ويمكنك الاطّلاع على نموذج تطبيق للاطّلاع على مثال لتنفيذه.يمكنك تخصيص الأنماط اختياريًا. أنشئ نمطك الخاص لإلغاء سمات المظاهر الشائعة وطبّق النمط على
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
- مزوّد رموز تعبيرية تم إلغاء استخدامه مؤخرًا ويرتّب البيانات حسب معدّل التكرار.
- تخصيص النمط الإضافي.