আজকে আমরা আমদের wallpaper অ্যাপটি তৈরি করা শেষ করব। প্রথমেই আমদের setwallpaper বাটনকে findViewbyId এবং onClickListener দ্বারা একটিভ করে দিতে হবে। তারপর switch-case এ case R.id.clickbutton এভাবে Id দ্বারা চিনিয়ে দিতে হবে। এরপর Background ইমেজ হিসেবে ইমেজ সেট করতে হলে আমদেরকে Bitmap ইউস করতে হবে। Bitmap এর কাজ হচ্ছে bitmap ইমেজকে প্রদর্শন করা।
যেখানে Bitmaps তৈরি করা যায় BitmapFactory দ্বারা। এখানে Bitmap কে ডিক্লিয়ার করতে হবে এভাবে Bitmap setwall = BitmapFactory.decodeStream(fwall); এখানে setwall কে variable হিসেবে ডিক্লিয়ার করা হয়েছে। এর আগে অনেকগুলো ইমেজ থেকে input নিয়ে যেন ইমেজ গুলো read করতে পারি সেজন্য আমদেরকে ব্যবহার করতে হবে InputStream। এখানে InputStream কে ডিক্লিয়ার করতে হবে এভাবে
InputStream fwall = getResources().openRawResource(wallpaper);
যেখানে wallpaper কে int value হিসেবে globally ডিক্লিয়ার করা হয়েছে।
package com.coder_art.android9;
import java.io.IOException;
import java.io.InputStream;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.KeyEvent.DispatcherState;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
ImageView display;
int wallpaper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wallpaper = R.drawable.background_1;
display = (ImageView) findViewById(R.id.imageView1);
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);
ImageView imageView3 = (ImageView) findViewById(R.id.imageView3);
ImageView imageView4 = (ImageView) findViewById(R.id.imageView4);
ImageView imageView5 = (ImageView) findViewById(R.id.imageView5);
ImageView imageView6 = (ImageView) findViewById(R.id.imageView6);
ImageView imageView7 = (ImageView) findViewById(R.id.imageView7);
ImageView imageView8 = (ImageView) findViewById(R.id.imageView8);
Button setbutton = (Button) findViewById(R.id.clickbutton);
imageView1 .setOnClickListener(this);
imageView2.setOnClickListener(this);
imageView3.setOnClickListener(this);
imageView4.setOnClickListener(this);
imageView5.setOnClickListener(this);
imageView6.setOnClickListener(this);
imageView7.setOnClickListener(this);
imageView8.setOnClickListener(this);
setbutton.setOnClickListener(this);
}
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageView1:
display.setImageResource(R.drawable.background_1);
wallpaper = R.drawable.background_1;
break;
case R.id.imageView2:
display.setImageResource(R.drawable.background_2);
wallpaper = R.drawable.background_2;
break;
case R.id.imageView3:
display.setImageResource(R.drawable.background_3);
wallpaper = R.drawable.background_3;
break;
case R.id.imageView4:
display.setImageResource(R.drawable.background_4);
wallpaper = R.drawable.background_4;
break;
case R.id.imageView5:
display.setImageResource(R.drawable.background_5);
wallpaper = R.drawable.background_5;
break;
case R.id.imageView6:
display.setImageResource(R.drawable.background_6);
wallpaper = R.drawable.background_6;
break;
case R.id.imageView7:
display.setImageResource(R.drawable.background_7);
wallpaper = R.drawable.background_7;
break;
case R.id.imageView8:
display.setImageResource(R.drawable.background_8);
wallpaper = R.drawable.background_8;
break;
case R.id.clickbutton:
InputStream fwall = getResources().openRawResource(wallpaper);
Bitmap setwall = BitmapFactory.decodeStream(fwall);
try {
getApplicationContext().setWallpaper(setwall);
}
catch (IOException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
}
তারপর wallpaper কে onCreate মেথড এর ভিতর এভাবে সেট করে দিতে হবে এভাবে wallpaper = R.drawable.background_1;। এভাবে প্রত্যেক case এর নিচেও প্রত্যেক background ইমেজ কে আলাদা আলাদা ভাবে চিনিয়ে দিয়ে হবে।
তারপর exception handling এর জন্য Bitmap এর নিচে try catch ডিক্লিয়ার করে দিতে হবে উপরের কোড এর মত। এখানে Background ইমেজ হিসেবে wallpaper সেট করার জন্য আরেকটি গুরত্তপূর্ণ বিষয় হচ্ছে AndroidManifest এ permission গিয়ে uses-permission সেট করা,যা add এর মাধ্যমেও করা যায় বা নিচের কোডটুকু AndroidManifest.xml এ টাইপ করেও একটিভ করা যায়
<uses-permissionandroid:name="android.permission.SET_WALLPAPER">
</uses-permission>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coder_art.android9"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.SET_WALLPAPER">
</uses-permission>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.coder_art.android9.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
এখন application টি রান করে set wallpaper এ click করলে যেই ইমেজ সিলেক্ট করে wallpaper সেট করা হবে সেই ইমেজটিই আপনার android এ background ইমেজ হিসেবে সেট হবে।
আজকের অ্যাপটি আপনার ফোন এ ব্যবহার করার জন্য apk ফাইল টি download করে নিন এখান থেকে।
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।
পোস্ট সম্পর্কিত সমস্যার জন্য মন্তব্য দিন।ডাউনলোড লিঙ্ক এ সমস্যা জন্য ইনবক্স করুন Aimzworld007
ConversionConversion EmoticonEmoticon