انتخاب‌گر اموجی

«انتخاب‌گر اموجی» راهکاری برای میانای کاربری است که ظاهر و احساسی مدرن، اموجی‌های به‌روز، و سهولت استفاده را ارائه می‌دهد. کاربران می‌توانند اموجی‌ها و انواع آن‌ها را مرور و انتخاب کنند یا از بین اموجی‌هایی که اخیراً استفاده کرده‌اند انتخاب کنند.

شکل ۱. انتخاب‌گر اموجی

با این کتابخانه، برنامه‌هایی از منابع مختلف می‌توانند تجربه اموجی فراگیر و یکپارچه‌ای را به کاربران خود ارائه دهند، بدون اینکه توسعه‌دهندگان مجبور باشند انتخاب‌گر اموجی خود را از ابتدا بسازند و نگهداری کنند.

ویژگی‌ها

«انتخاب‌گر اموجی» ویژگی‌های زیر را دارد.

اموجی به‌روز

اموجی‌های جدیداً منتشرشده به‌صورت گزینشی در «انتخاب‌گر اموجی» گنجانده می‌شوند. کتابخانه «انتخاب‌گر اموجی» با چندین نسخه و دستگاه Android سازگار است.

گونه‌های چسبان

روی اموجی فشار طولانی دهید تا منویی از گونه‌های مختلف، مانند جنسیت‌ها یا رنگ‌های پوست مختلف، نمایش داده شود. گونه‌ای که انتخاب می‌کنید در «انتخاب‌گر اموجی» ذخیره می‌شود و آخرین گونه انتخاب‌شده در پانل اصلی استفاده می‌شود.

با این ویژگی، کاربران می‌توانند گونه‌های اموجی دلخواهشان را با یک تک‌ضرب ارسال کنند.

متغیرهای اموجی
شکل ۲. گونه‌های مختلف اموجی.

اموجی‌های اخیر

اموجی اخیر
شکل ۳. اموجی اخیر.

RecentEmojiProvider مسئول ارائه اموجی در دسته اخیراً استفاده‌شده است. کتابخانه یک ارائه‌دهنده اموجی اخیر پیش‌فرض دارد که رایج‌ترین مورد استفاده را برآورده می‌کند:

  • همه اموجی‌های انتخاب‌شده در اولویت‌های مشترک برای هر برنامه ذخیره می‌شوند.
  • انتخاب‌گر حداکثر سه ردیف از اموجی‌های انتخاب‌شده را به‌صورت غیرتکراری و به‌ترتیب زمانی معکوس نمایش می‌دهد.

اگر این رفتار پیش‌فرض کافی است، نیازی به استفاده از setRecentEmojiProvider() ندارید.

بااین‌حال، ممکن است لازم باشد رفتار ارائه‌دهنده را سفارشی‌سازی کنید. چند سناریو رایج در اینجا آمده است:

  • می‌خواهید اموجی‌های انتخاب‌شده مختلفی را برای هر حساب کاربری ذخیره کنید.
  • می‌خواهید از فضای ذخیره‌سازی داده‌ای غیراز اولویت‌های مشترک استفاده کنید.
  • می‌خواهید اموجی‌های اخیر براساس تعداد دفعات استفاده مرتب شوند.

سپس می‌توانید میانای RecentEmojiProvider را پیاده‌سازی کنید و آن را بااستفاده از setRecentEmojiProvider() تنظیم کنید.

گزینشگر جهت

از Emoji 15.1، «انتخاب‌گر اموجی» از اموجی دوطرفه پشتیبانی می‌کند. کاربران می‌توانند روی تغییردهنده دوسویه تک‌ضرب بزنند تا بین نسخه‌های چپ‌رو و راست‌رو اموجی جابه‌جا شوند.

اموجی دوسویه چپ

شکل ۴. اموجی دوطرفه رو به چپ.

اموجی دوسویه راست

شکل ۵. اموجی دوسویه روبه‌راست.

انتخابگر اموجی چندنفره

کاربران می‌توانند اموجی‌های زوج را لمس کنند و نگه دارند تا انتخاب‌های اموجی چندنفره را ببینند.

اموجی زوج لمس کردن و نگه داشتن

شکل ۶. برای دیدن گزینه‌های اموجی چندنفره، اموجی زوج را لمس کنید و نگه دارید.

روی اموجی شخص سمت راست ضربه بزنید

شکل ۷. اموجی نیمه چپ شخص را انتخاب کنید.

روی اموجی فرد سمت راست ضربه بزنید

شکل ۸. اموجی فرد سمت راست را انتخاب کنید.

وقتی کاربر نیمه چپ یا راست اموجی زوج را انتخاب می‌کند، انتخاب‌گر پیش‌نمایشی را در پایین سمت راست نشان می‌دهد، همان‌طور که در شکل‌های ۷ و ۸ نشان داده شده است. پس‌از انتخاب هر دو نیمه زوج اموجی، کاربران می‌توانند پیش‌نمایش را انتخاب کنند تا زوج اموجی سفارشی را بسازند.

سازگاری با EmojiCompat

اگر فعال باشد، از نمونه EmojiCompat در «انتخاب‌گر اموجی» استفاده می‌شود تا تا حد امکان اموجی‌های بیشتری ارائه شود. بااین‌حال، «انتخاب‌گر اموجی» به EmojiCompat نیاز ندارد.

پیش‌نیازها

برنامه‌تان باید Android نسخه ۵.۰ (سطح میانای برنامه‌سازی کاربردی ۲۱) یا بالاتر را هدف‌یابی کند.

استفاده از کتابخانه

  1. androidx.emoji2:emojipicker:$version را در فایل build.gradle برنامه‌تان وارد کنید.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. نمای «انتخاب‌گر اموجی» را گسترش دهید و به‌طور اختیاری emojiGridRows و emojiGridColumns را تنظیم کنید.

    • تعداد پیش‌فرض emojiGridColumns برابر با ۹ است.
    • تعداد ردیف‌ها براساس ارتفاع نمای اصلی و مقدار 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" />
    

Sample App

برنامه نمونه «انتخاب‌گر اموجی» موارد استفاده اصلی را به‌همراه سناریوهای اضافی زیر نشان می‌دهد:

  • محاسبه مجدد چیدمان هنگام بازنشانی emojiGridRows یا emojiGridColumns.
  • ارائه‌دهنده اموجی‌های اخیر لغوشده که براساس بسامد مرتب می‌کند.
  • سفارشی‌سازی سبک اضافی.