How to Add Dark Mode and Light Mode in Android Studio Java | Bangla Tutorial

আপনার অ্যাপ কি এখনো পুরনো সাদা থিমে আটকে আছে? এক ক্লিকেই Dark Mode আর Light Mode যোগ করে আপনার অ্যাপকে দিন প্রিমিয়াম লুক!

আসসালামু আলাইকুম, কেমন আছেন সবাই আশা করি সবাই ভালো আছেন।

আজকের আমি আপনাদের শিখাবো কীভাবে Android Studio Java ব্যবহার করে আপনার Android অ্যাপে Dark Mode এবং Light Mode যুক্ত করবেন।

শুধু তাই নয়, আরো শিখাবো কিভাবে SharedPreferences এর মাধ্যমে ইউজার এর সিলেক্ট করা থিম এর তথ্য সংগ্রহ করে রাখবেন যাতে ইউজার যতক্ষণ পর্যন্ত আবার নিজে থেকে থিম পরিবর্তন না করবে, ততক্ষণ পর্যন্ত ইউজারের সিলেক্ট করা থিমটিই Save থাকবে।

তাহলে চলুন, আর সময় নষ্ট না করে দেখে নেওয়া যাক কীভাবে এই ফিচারটি আপনার অ্যাপে যুক্ত করবেন।

Step 01: XML Design Code

প্রথমে যে Activity থেকে থিম পরিবর্তন করতে চান, সেই Activity-এর XML Layout ফাইলে নিচের কোডটি যুক্ত করুন।

Code
<Switch
   android:id="@+id/themeSwitch"
   android:layout_alignParentRight="true"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="OFF"/>

নোট: এখানে একটি Switch ব্যবহার করা হয়েছে, যার মাধ্যমে ইউজার সহজেই Dark Mode এবং Light Mode সিলেক্ট করতে পারবেন।

Step 02: Java Code

এবার আমরা XML Layout-এ যোগ করা Switch-এর জন্য Java কোড লিখব এবং অ্যাপে Dark Mode ও Light Mode ফাংশনালিটি যুক্ত করব।

প্রথমে নিচের ভেরিয়েবলগুলো আপনার Activity-এর Java ফাইলে যুক্ত করুন।

Code
Switch themeSwitch;
boolean isDarkModeEnabled;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
এবার Switch এটাকে Java এর সাথে পরিচয় করিয়ে দেওয়ার জন্য নিচের কোডটা onCreate এর মধ্যে বসান।
Code
themeSwitch = findViewById(R.id.themeSwitch);

এবার আপনার অ্যাপ Dark Mode এ আছে নাকি Light Mode এ আছে সেটা চেক করে Switch এর টেক্স এবং অন অফ স্টেটাস আপডেট করার জন্য একটু আগে যে কোডটা এড করলেন সেটার নিচের লাইনেই এই কোডটা বসান।

Code
if (isDarkModeEnabled) {
            themeSwitch.setChecked(true);
            themeSwitch.setText("ON");
        } else {
            themeSwitch.setChecked(false);
            themeSwitch.setText("OFF");
        }

এবার Switch এ ইউজার ক্লিক করলে থিম চেঞ্জ করার জন্য একটা OnClickListener এড করবো এর জন্য নিচের কোডটা কপি করে বসান।

Code
themeSwitch.setOnClickListener(view -> {

            isDarkModeEnabled = themeSwitch.isChecked();
            myThemes();

        });

এবার অন ক্লিক এর মধ্যে যে myThemes(); এড করেছি এটার জন্য private void myThemes() বানাতে হবে, যার কোড নিচে থেকে কপি করে এড করুন।

নোটঃ এই কোডটা কিন্তু onCreate এর বাইরে এড করতে হবে।

Code
private void myThemes(){
        if (isDarkModeEnabled) {
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
            editor.putBoolean("isDarkModeEnabled", true);

        } else {
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
            editor.putBoolean("isDarkModeEnabled", false);
        }
        editor.apply();
    }

এবার ইউজার এর সেটিং মানে ইউজার কোন থিম সিলেক্ট করেছে তার ডাটা SharedPreferences এ Save করা এবং SharedPreferences থেকে ডাটা চেক করে থিম আপডেট করার জন্য নিচের কোডটা কপি করে onCreate এর একদম শুরুতে এড করুন।

Code
// ✅ সবার আগে theme set করুন — flicker বন্ধ হবে
        sharedPreferences = getSharedPreferences("ThemePrefs", MODE_PRIVATE);
        isDarkModeEnabled = sharedPreferences.getBoolean("isDarkModeEnabled", false);
        editor = sharedPreferences.edit();

        if (isDarkModeEnabled) {
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
        } else {
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
        }

আমাদের কাজ শেষ। এখন অ্যাপ রান করে Dark Mode and Light Mode ফিচারটি আপনার অ্যাপ এ উপভোগ করুন।

আর হ্যা, আপনি যদি চান থিম চেঞ্জ করলে Switch এর কালার এবং টেক্স চেঞ্জ করতে তাহলে প্রথমে এই কোডটা onCreate এর মধ্যে এড করুন

Code
updateSwitchColor(isDarkModeEnabled);

এবার onCreate এর বাইরে এই কোডটা এড করুন।

Code
private void updateSwitchColor(boolean isChecked) {
        int thumbColor = isChecked
                ? getResources().getColor(R.color.primary)   // ON = সবুজ
                : getResources().getColor(R.color.black);  // OFF = ধূসর

        int trackColor = isChecked
                ? getResources().getColor(R.color.primary)   // ON = হালকা সবুজ
                : getResources().getColor(R.color.black);  // OFF = হালকা ধূসর

        // ✅ Text color
        int textColor = isChecked
                ? getResources().getColor(R.color.primary)   // ON = সবুজ
                : getResources().getColor(R.color.black); // OFF = ধূসর

        themeSwitch.getThumbDrawable().setTint(thumbColor);
        themeSwitch.getTrackDrawable().setTint(trackColor);
        themeSwitch.setTextColor(textColor);
    }

আমাদের কাজ শেষ, আশাকরি সবাই বুঝতে পারেছেন এবং শিখতে পেরেছেন কিভাবে Android Apps এ Dark Mode and Light Mode সেট করতে হয়।

সবাই ভাবো থাকবেন সুস্থ থাকবেন এবং আশাকরি সহজ টেক এর সাথেই থাকবেন। আল্লাহ হাফেজ।

Post a Comment

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.