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);