কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ওয়ালপেপার সেট করার পদ্ধতি

WallpaperManager ব্যবহার করে ওয়ালপেপার পরিবর্তন করুন

এই উদাহরণটি দেখায় কিভাবে অ্যাপের রিসোর্স থেকে একটি ইমেজ নিয়ে সেট ডিভাইসের হোম স্ক্রিন ওয়ালপেপার হিসেবে সেট করা যায়।

ধাপ ১: প্রজেক্ট তৈরি

ধাপ ২: লেআউট

<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="Set Wallpaper"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true"
        android:layout_marginLeft="135dp"/>
</LinearLayout>

ধাপ ৩: MainActivity.java

import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button button = findViewById(R.id.button);
        button.setOnClickListener(v -> setWallpaper());
    }
    
    private void setWallpaper() {
        // res/drawable থেকে বিটম্যাপ লোড
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.wallpaper);
        
        WallpaperManager manager = WallpaperManager.getInstance(getApplicationContext());
        
        try {
            manager.setBitmap(bitmap);
            Toast.makeText(this, "Wallpaper set!", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            Toast.makeText(this, "Error!", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
    }
}

ধাপ ৪: ম্যানিফেস্টে পারমিশন

<uses-permission android:name="android.permission.SET_WALLPAPER"/>

গুরুত্বপূর্ণ পয়েন্ট

  • SET_WALLPAPER পারমিশন **নরম্যাল পারমিশন**, তাই রানটাইমে চেক লাগে না।
  • WallpaperManager.getInstance() সিস্টেম সার্ভিস রিটার্ন করে।
  • বড় ইমেজের জন্য setStream() ব্যবহার করুন মেমরি ইফিশিয়েন্সির জন্য।

আধুনিক নোট (Android 7.0+)

API 24+ এ WallpaperManager.setBitmap() ডিপ্রিকেটেড। বদলে setWallpaper() বা setStream() ব্যবহার করুন। লক স্ক্রিন ওয়ালপেপার সেট করতে WallpaperManager.FLAG_LOCK ফ্ল্যাগ ব্যবহার করুন।

উন্নত উদাহরণ

// লক স্ক্রিন ওয়ালপেপার সেট (API 24+)
manager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_LOCK);
  1. অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ব্যাকগ্রাউন্ড ড্রয়েবল সেট করা

  2. অ্যান্ড্রয়েড অ্যাপে প্রোগ্রাম্যাটিক্যালি লোকেল (ভাষা) সেট করার পদ্ধতি

  3. অ্যান্ড্রয়েডে ছবিকে Base64 স্ট্রিং-এ রূপান্তর করার পদ্ধতি

  4. অ্যান্ড্রয়েডে ইনকামিং কল প্রোগ্রামেটিক্যালি রিসিভ করবেন কীভাবে?