অ্যান্ড্রয়েড কমিউনিটির কিছু সৃষ্টিশীল মস্তিষ্ক নেভবার মডিফাই করে অ্যানিমেটেড .gif কে হোম কি হিসেবে ব্যবহার করার পদ্ধতি খুঁজে পেয়েছে, এবং Appuals সেই গাইড আপনাদের কাছে পেশ করছে!

সতর্কতা: এটি একটি জটিল প্রক্রিয়া। আপনাকে SystemUI.apk ডিকম্পাইল করতে হবে, গুরুত্বপূর্ণ ফাইলগুলো মডিফাই করে আবার রিকম্পাইল করতে হবে। ভুল হলে বিনাশकारी ফলাফল হতে পারে, তাই SystemUI.apk-এর ব্যাকআপ অবশ্যই রাখুন!
সম্পর্কিত Appuals গাইড:
- অ্যান্ড্রয়েড সিস্টেম UI ম্যানুয়ালি থিম করার পদ্ধতি
- অ্যান্ড্রয়েড APK ডিকম্পাইল এবং থিম করার পদ্ধতি
- স্টক রমে APK ডिओডেক্স করার পদ্ধতি
প্রয়োজনীয় টুল:
- রুট করা অ্যান্ড্রয়েড ফোন (Appuals-এ অনেক রুট গাইড উপলব্ধ!)
- APK ডিকম্পাইলিং টুল (আমরা সুপারিশ করি APK Easy Tool)
- ভালো কোড এডিটর যেমন Notepad++
SystemUI.apk ডিকম্পাইল করা
প্রথমে SystemUI.apk ডিওডেক্স করুন—Tickle My Android-এর মতো টুল ব্যবহার করুন। Appuals-এর APK ডিওডেক্স গাইড পড়ুন।
পরবর্তী ধাপ SystemUI.apk ডিকম্পাইল করা—এই নিজে একটা গাইড। Appuals-এ "How to Manually Theme Android System UI" আছে, সেটা পড়ুন যদি প্রথমবার APK ডিকম্পাইল করেন।
SMALI ফাইল যোগ করা
এখন নতুন smali ফাইল যোগ করতে হবে—এখানে আমাদের কাজের জন্য ইতিমধ্যে মডিফাইড .smali ফাইল প্যাক উপলব্ধ। সেটি থেকে "SelfAnimatingImageView.smali" এক্সট্রাক্ট করে আপনার ডিকম্পাইল্ড APK-তে নিচের ডিরেক্টরিতে যোগ করুন:
SystemUI.apk\smali\com\android\morningstar\
ফোল্ডারগুলো না থাকলে তৈরি করুন।
GIF কে ফ্রেমে ভাগ করা
আপনার পছন্দের অ্যানিমেটেড .gif খুঁজুন যা নেভবার হোম বাটন হিসেবে ব্যবহার করবেন। স্টিকার GIF ব্যবহার করুন (Giphy.com/stickers-এ পাওয়া যায়)—এদের ট্রান্সপেরেন্ট ব্যাকগ্রাউন্ড থাকে PNG-এর মতো, কিন্তু এগুলো আসলে GIF।
GIF সেভ করার পর এটি PNG সিরিজে কনভার্ট করতে হবে। কারণ মডিফাইড SystemUI নেটিভ .gif রান করে না, বরং PNG কে সিকোয়েন্সিয়ালি প্লে করে। অনলাইন কনভার্টার EZGIF Split দিয়ে সহজেই করা যায়।

EZGIF Split-এ GIF আপলোড করুন, Split Options ড্রপডাউন থেকে "Output images in PNG format" বেছে নিন। সব ফ্রেম সিকোয়েন্সিয়ালি এক্সট্রাক্ট হবে। ZIP ফাইল হিসেবে ডাউনলোড করুন।

এখন স্প্লিট করা PNG ফ্রেমগুলো আপনার ডিকম্পাইল্ড SystemUI apk ফোল্ডারের উপযুক্ত "drawable-xxxDPI" ফোল্ডারে যোগ করুন। ডিভাইসের DPI অনুযায়ী ফোল্ডার:
- MDPI = ~160 DPI
- HDPI = ~240 DPI
- XHDPI = ~320 DPI
- XXHDPI = ~480 DPI
- XXXHDPI = ~640 DPI
এখন একটি XML ফাইল দরকার যেটি অ্যান্ড্রয়েডকে বলে কোন ইমেজগুলো অ্যানিমেশনে ব্যবহার করতে হবে এবং কত দ্রুত সাইকেল করবে। আগের ZIP থেকে "frame_anim.xml" কপি করে ডিকম্পাইল্ড APK-র "res\drawable" ফোল্ডারে রাখুন।
frame_anim.xml Notepad++-এ খোললে নিচের মতো দেখাবে:
<?xml version="1.0" encoding="utf-8"?> <animation-list android:oneshot="false" xmlns:android="https://schemas.android.com/apk/res/android"> <item android:duration="100" android:drawable="@drawable/frame_0" /> <item android:duration="100" android:drawable="@drawable/frame_1" /> <item android:duration="100" android:drawable="@drawable/frame_2" /> <item android:duration="100" android:drawable="@drawable/frame_3" /> </animation-list>
প্রতিটি <item লাইন একটি ফ্রেম রিপ্রেজেন্ট করে। আপনার GIF-এ কত ফ্রেম আছে তার অনুযায়ী লাইন যোগ বা বাদ দিন।
অবশেষে, রিকম্পাইল করার আগে অ্যানিমেশন নেভবারে সেট করতে হবে। এটি কিছুটা জটিল—layout XML ফাইল এডিট করতে হবে। অধিকাংশ স্টক রমে HOME নেভবার সফ্টকি কন্ট্রোল করার কোড "layout\navigation_bar.xml"-এ থাকে, তবে "layout\home.xml"-ও হতে পারে। আপনার ROM অনুযায়ী খুঁজে বের করুন।
মূলত সে XML ফাইল খুঁজুন যেটিতে নিচের কোড থাকে:
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
যখন home_button বা সिमিলার রেফারেন্স দেখবেন, বুঝবেন সঠিক ফাইল পেয়ে গেলেন। আমরা এই HOME কি হাইড করে সেটায় একই সাইজের অদৃশ্য কি বসাব এবং তার নিচে অ্যানিমেটেড ফ্রেম রাখব। এটি FrameLayout কোড দিয়ে সহজে করা যায়।
<FrameLayout android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent"> <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/transparent" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" /> <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" /> <com.android.systemui.morningstar.SelfAnimatingImageView android:layout_gravity="center" android:id="@+id/frame_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/frame_anim" /> </FrameLayout>
এই কোডে তিনটি এলিমেন্ট স্ট্যাক করা আছে। রান করলে শুধু আপনার অ্যানিমেটেড GIF নেভবারের HOME কিয়ের জায়গায় দেখাবে।
সুতরাং HOME সফ্টকির লাইন কোড বাদ দিয়ে উপরের FrameLayout কোড বসিয়ে দিন। ROM অনুযায়ী কিছু ট্রায়-এরর লাগতে পারে।
APK রিকম্পাইল ও ফ্ল্যাশ করা
এখন মডিফাইড APK রিকম্পাইল করতে পারি। APK Easy Tool দিয়ে SystemUI.apk রিকম্পাইল করুন এবং রিকভারি মোডে ফ্ল্যাশ করুন। রিকভারি মোডে করতে হবে কারণ Dalvik ক্যাশ ワイপ না করলে নতুন smali ফাইলগুলো এক্টিভেট হবে না।
সব ঠিক থাকলে আপনার নতুন নেভবার হোম কি হিসেবে অ্যানিমেটেড GIF দেখতে পাবেন!