ইমোজি পিকার

ইমোজি পিকার হল একটি UI সমাধান যা একটি আধুনিক চেহারা এবং অনুভূতি, হালনাগাদ ইমোজি এবং ব্যবহারের সহজতা প্রদান করে। ব্যবহারকারীরা ইমোজি এবং তাদের রূপগুলি ব্রাউজ করে নির্বাচন করতে পারেন অথবা তাদের সম্প্রতি ব্যবহৃত ইমোজি থেকে বেছে নিতে পারেন।

চিত্র ১. ইমোজি পিকার

এই লাইব্রেরির সাহায্যে, বিভিন্ন উৎস থেকে আসা অ্যাপগুলি তাদের ব্যবহারকারীদের একটি অন্তর্ভুক্তিমূলক এবং একীভূত ইমোজি অভিজ্ঞতা প্রদান করতে পারে, ডেভেলপারদের শুরু থেকে তাদের নিজস্ব ইমোজি পিকার তৈরি এবং রক্ষণাবেক্ষণ না করেই।

ফিচার

ইমোজি পিকারের নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে।

হালনাগাদ ইমোজি

নতুন প্রকাশিত ইমোজিগুলি বেছে বেছে ইমোজি পিকারে অন্তর্ভুক্ত করা হয়েছে। ইমোজি পিকার লাইব্রেরিটি একাধিক অ্যান্ড্রয়েড সংস্করণ এবং ডিভাইস জুড়ে সামঞ্জস্যপূর্ণ।

স্টিকি ভ্যারিয়েন্ট

বিভিন্ন লিঙ্গ বা ত্বকের রঙের মতো বিভিন্ন ধরণের মেনু প্রদর্শনের জন্য একটি ইমোজি দীর্ঘক্ষণ টিপুন। আপনার নির্বাচিত ভেরিয়েন্টটি ইমোজি পিকারে সংরক্ষিত থাকে এবং শেষ নির্বাচিত ভেরিয়েন্টটি প্রধান প্যানেলে ব্যবহৃত হয়।

এই বৈশিষ্ট্যটির সাহায্যে, ব্যবহারকারীরা এক ট্যাপেই তাদের পছন্দের ইমোজি ভেরিয়েন্ট পাঠাতে পারবেন।

ইমোজির ধরণ
চিত্র ২। ইমোজির বিভিন্ন রূপ।

সাম্প্রতিক ইমোজি

সাম্প্রতিক ইমোজি
চিত্র ৩। সাম্প্রতিক ইমোজি।

RecentEmojiProvider সম্প্রতি ব্যবহৃত বিভাগে ইমোজি প্রদানের জন্য দায়ী। লাইব্রেরিতে একটি ডিফল্ট সাম্প্রতিক ইমোজি প্রদানকারী রয়েছে যা সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে সন্তুষ্ট করে:

  • নির্বাচিত সমস্ত ইমোজি প্রতিটি অ্যাপের জন্য ভাগ করা পছন্দগুলিতে সংরক্ষণ করা হয়।
  • পিকারটি নির্বাচিত ইমোজির সর্বাধিক তিনটি সারি, ডিডুপ করা, বিপরীত কালানুক্রমিক ক্রমে প্রদর্শন করে।

যদি এই ডিফল্ট আচরণ যথেষ্ট হয়, তাহলে আপনাকে setRecentEmojiProvider() ব্যবহার করার দরকার নেই।

তবে, আপনাকে প্রদানকারীর আচরণ কাস্টমাইজ করতে হতে পারে। এখানে কিছু সাধারণ পরিস্থিতি রয়েছে:

  • আপনি প্রতিটি ব্যবহারকারীর অ্যাকাউন্টের জন্য আলাদা আলাদা নির্বাচিত ইমোজি সংরক্ষণ করতে চান।
  • আপনি ভাগ করা পছন্দগুলি বাদ দিয়ে ডেটা স্টোরেজ ব্যবহার করতে চান।
  • আপনি ফ্রিকোয়েন্সি অনুসারে সাজানো সাম্প্রতিক ইমোজি প্রদর্শন করতে চান।

এরপর আপনি RecentEmojiProvider ইন্টারফেসটি বাস্তবায়ন করতে পারেন এবং setRecentEmojiProvider() ব্যবহার করে এটি সেট করতে পারেন।

দিকনির্দেশনা নির্বাচক

ইমোজি ১৫.১ থেকে শুরু করে, ইমোজি পিকার দ্বিমুখী ইমোজি সমর্থন করে। ব্যবহারকারীরা দ্বিমুখী সুইচারে ট্যাপ করে ইমোজির বাম এবং ডানমুখী সংস্করণের মধ্যে টগল করতে পারেন।

bidirectional left emoji

চিত্র ৪। বাম দিকে মুখ করে দ্বিমুখী ইমোজি।

bidirectional right emoji

চিত্র ৫। ডানদিকে মুখ করে দ্বিমুখী ইমোজি।

বহু-ব্যক্তি ইমোজি নির্বাচক

ব্যবহারকারীরা একাধিক ব্যক্তির ইমোজি নির্বাচন প্রকাশ করতে ইমোজি কাপল স্পর্শ এবং ধরে রাখতে পারেন।

touch and hold emoji couple

চিত্র ৬। একাধিক ব্যক্তির ইমোজি নির্বাচন দেখতে একটি ইমোজি জোড়া স্পর্শ করে ধরে রাখুন।

tap left emoji person

চিত্র ৭। বাম-অর্ধেক ইমোজি ব্যক্তি নির্বাচন করুন।

tap right emoji person

চিত্র ৮। ডান-অর্ধেক ইমোজি ব্যক্তি নির্বাচন করুন।

যখন ব্যবহারকারী একটি ইমোজি কাপলের বাম-অর্ধেক বা ডান-অর্ধেক ইমোজি ব্যক্তি নির্বাচন করেন, তখন নির্বাচক নীচে-ডানদিকে একটি প্রিভিউ প্রদর্শন করে, যেমনটি চিত্র 7 এবং 8-এ দেখানো হয়েছে। ইমোজি কাপলের উভয় অংশ নির্বাচন করার পরে, ব্যবহারকারীরা কাস্টম ইমোজি কাপল রচনা করার জন্য প্রিভিউ নির্বাচন করতে পারেন।

EmojiCompat সাথে সামঞ্জস্যপূর্ণ

যদি সক্ষম করা থাকে, তাহলে যতটা সম্ভব ইমোজি রেন্ডার করার জন্য ইমোজি পিকারে একটি EmojiCompat ইনস্ট্যান্স ব্যবহার করা হয়। তবে, ইমোজি পিকারের জন্য EmojiCompat প্রয়োজন হয় না।

পূর্বশর্ত

আপনার অ্যাপটি অবশ্যই Android 5.0 (API লেভেল 21) বা তার উচ্চতর ভার্সনের হতে হবে।

লাইব্রেরি ব্যবহার করুন

  1. আপনার অ্যাপের build.gradle ফাইলে androidx.emoji2:emojipicker:$version আমদানি করুন।

    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" />
    

নমুনা অ্যাপ

ইমোজি পিকার নমুনা অ্যাপটি নিম্নলিখিত অতিরিক্ত পরিস্থিতিগুলির সাথে মৌলিক ব্যবহারের ক্ষেত্রেও প্রদর্শন করে:

  • emojiGridRows বা emojiGridColumns রিসেট করা হলে লেআউট পুনঃগণনা।
  • একটি ওভাররাইড করা সাম্প্রতিক ইমোজি প্রদানকারী যা ফ্রিকোয়েন্সি অনুসারে সাজায়।
  • অতিরিক্ত স্টাইল কাস্টমাইজেশন।