এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব-১১] :: Wallpaper অ্যাপ তৈরি- শেষ পর্ব এবং Bitmap এর ব্যবহার

এন্ড্রয়েড ডেভেলপমেন্ট

আজকে আমরা আমদের 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 ডিক্লিয়ার করা হয়েছে।

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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="<a class="bp-suggestions-mention" href="https://www.techtunes.io/techtuner/style/" rel="nofollow">@style</a>/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 করে নিন এখান থেকে।

এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।

Level 0

আমি নাঈম হায়দার ঋদ্ধি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 76 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 6 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

Computer ও Programming পছন্দ, আমার youtube channel https://www.youtube.com/channel/UCYKbAf2kXLgKav30hd3zDPQ . আমার ফেসবুক প্রোফাইল https://www.facebook.com/nayeem.riddhi


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস