انتخاب کننده شکلک

Emoji Picker یک راه حل رابط کاربری است که ظاهر و احساس مدرن، شکلک های به روز و سهولت استفاده را ارائه می دهد. کاربران می‌توانند شکلک‌ها و انواع آن‌ها را مرور و انتخاب کنند یا از ایموجی‌هایی که اخیراً استفاده کرده‌اند انتخاب کنند.

شکل 1. انتخاب کننده شکلک

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

ویژگی ها

Emoji Picker دارای ویژگی های زیر است.

ایموجی های به روز

ایموجی های تازه منتشر شده به صورت انتخابی در Emoji Picker گنجانده شده اند. کتابخانه Emoji Picker با چندین نسخه و دستگاه اندروید سازگار است.

انواع چسبنده

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

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

انواع ایموجی
شکل 2. انواع شکلک.

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

ایموجی های اخیر
شکل 3. ایموجی های اخیر.

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

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

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

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

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

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

انتخابگر جهت

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

bidirectional left emoji

شکل 4. شکلک دو طرفه رو به چپ.

bidirectional right emoji

شکل 5. شکلک دو طرفه رو به راست.

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

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

touch and hold emoji couple

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

tap left emoji person

شکل 7. یک فرد شکلک سمت چپ را انتخاب کنید.

tap right emoji person

شکل 8. یک فرد شکلک سمت راست را انتخاب کنید.

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

سازگاری با EmojiCompat

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

پیش نیازها

برنامه شما باید Android 5.0 (سطح API 21) یا بالاتر را هدف قرار دهد.

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

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

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. نمای Emoji Picker را باد کنید و به صورت اختیاری 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() برای اضافه کردن ایموجی انتخاب شده به یک View استفاده کنید. به عنوان مثال، برای افزودن به یک 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" />
    

نمونه برنامه

برنامه نمونه Emoji Picker موارد استفاده اولیه را همراه با سناریوهای اضافی زیر نشان می دهد:

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