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

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

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

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

ویژگی ها

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

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

انواع چسبنده

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

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

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

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

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

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

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

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

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

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

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

سازگاری با 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 بازنشانی می شوند.
  • ارائه‌دهنده شکلک‌های اخیر لغو شده که بر اساس فرکانس مرتب می‌شود.
  • سفارشی سازی سبک اضافی