Lesson 6 - Launcher Activity, Show Image ‍and Create Asset



আমরা প্রথমে একটি Launcer Activity তৈরী করব, এরপর এই এ্যাক্টিভিটি থেকে বিভিন্ন এ্যাক্টিভিটিতে বাটন ক্লিক এর মাধ্যমে যাবো। এবং সেই এ্যাক্টিভিটিগুলোতে বিভিন্ন মেথড যুক্ত করে পর্যায়ক্রমে সেগুলোর কাজ দেখবো । প্রথমে জাভা ফোল্ডারের উপর রাইট বাটনে ক্লিক করে একটি এম্পটি এ্যাক্টিভিটি তৈরী করুন :







জাভা ফাইল নেম এবং লেআউট ফাইল নেম নিচের মত দিন এবং Launcher Activity - তে টিকমার্ক দিয়ে দিন :



এবার ফিনিশ বাটনে ক্লিক করুন।

নিচের চিত্রের মত একটি এ্যাক্টিভিটি তৈরী হবে :




আমরা পুনরায় একটি এ্যাক্টিভিটি তৈরী করব যার নাম দেব ইমেজ ভিউ :










এভাবে মোট দুটি এ্যাক্টিভিটি তৈরী করলাম।



==================


এখন আমরা ‍স্টার্ট এ্যাক্টিভিটিকে লাঞ্চার এ্যাক্টিভিটি হিসেবে তৈরী করব, এজন্য আমরা মেনিফেস্ট ফাইল ওপেন করব। এবং :


<intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


এই লেখাটুকু শুধুমাত্র স্টার্ট এ্যাক্টিভিটিতে রেখে অন্যান্য এ্যাক্টিভিটি থেকে মুছে দেবো। এই কোডটুকু যে এ্যাক্টিভিটর অধীনে থাকবে সেই এ্যাক্টিভিটিই লাঞ্চার এ্যাক্টিভিটি হয়ে যাবে, অর্থাৎ এ্যাপটি চালু হলে সর্বপ্রথম সেই এ্যাক্টিভিটি ওপেন হবে :





অন্যান্য এ্যাক্টিভিটি থেকে ইন্টেন্ট ফিল্টার লাঞ্চার মুছে ফেলে শুধুমাত্র স্টার্ট এ্যাক্টিভিটিতে রাখতে হবে । যার ফলে মেনিফেস্ট    এর চেহারা   এরকম হবে । নিচের চিত্রে  দেখুন  শুধুমাত্র স্টার্ট এ্যাক্টিভিটির জন্যই ইন্টেন্ট ফিল্টার লাঞ্চার রাখা হলো :





এখন এ্যাপটি চালু করলে স্টার্ট এ্যাক্টিভিটি সর্বপ্রথম চালু হবে।

=================

এবার start.xml ফাইলটি ওপেন করে একটি বাটন যোগ করব :






এবার StartActivity.java ফাইলটি ওপেন করে এই বাটনটিকে ইনিশিয়ালাইজ করে বাটন ক্লিক এর মাধ্যমে যাতে ইমেজ ভিউ নামের এ্যাক্টি ভিটি ওপেন হয় সেই কোড যোগ করব : 




মনে করি বাটনটির আইডি হবে বাটন টু, যেটা এক্সএমএল ফাইলে নির্ধারণ করতে হবে : 


android:id="@+id/button2"



তাহলে জাভা ফাইলে ইনিশিয়ালাইজ হবে : Button button2 = (Button)findViewById(R.id.button2);



এবার বাটন টু এর জন্য অনক্লিক লিসেনার : 


button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

// বাটন টু ক্লিক করলে যা ঘটবে তা এখানে লিখতে হবে । 

}
});



আমরা লিখলাম যে ইমেজ ভিউ ক্নাস নামে একটি এ্যাক্টিভিটি আছে সেটা ওপেন কর : 


Intent i= new Intent(StartActivity.this, ImageView.class);
startActivity(i);



সুতরাং, এখন বাটন টু এর অনক্লিক লিসেনার হবে এরকম : 


Button button2 = (Button)findViewById(R.id.button2);

button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent i= new Intent(StartActivity.this, ImageView.class);
startActivity(i);

}
});






এ্যাপটি রান করুন। বাটনে ক্লিক করলে ইমেজভিউ এ্যাক্টিভিটি ওপেন হবে।



=====================


এবার আমরা বাটন টু এর ক্লিক এর মাধ্যমে ইমেজভিউ এ্যাক্টিভিটিতে প্রবেশ করলাম।

এখানে আমরা একটি ইমেজভিউ যোগ করব । প্রথমে এই এ্যাক্টিভিটির লেআউট ফাইলটি ওপেন করে একটি ইমেজভিউ যোগ করি :





উপরের চিত্রের মত করে লিখুন :

android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"


app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.03"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.018"

app:srcCompat="@mipmap/ic_launcher" 
 />

===============

এখন আমরা দেখব যে, কয়েকটি ভাবে একটি ইমেজ ভিউতে যে কোন ইমেজ প্রদর্শন করানো যায়। দেখুন উপরের ইমেজ ভিউ এর সবার শেষের লাইনটি এরকম :


app:srcCompat="@mipmap/ic_launcher"



এর অর্থ হলো রিসোর্স এর আন্ডারে যে মিপম্যাপ নামক ফোল্ডার রয়েছে সেই ফোল্ডারে আইসি লাঞ্চার নামে একটি ইমেজ রয়েছে সেই ইমেজটি প্রদর্শন করা হোক ।





এখন   এ্যাপটি রান করে দেখুন ।



====================

====================



আবার নিচের মত করেও যে কোন ইমেজ প্রদর্শন করানো যায় :

android:src="@drawable/ic_launcher_background"



এখানে দেখুন আগের app:srcCompat এর পরিবর্তে android:src ব্যবহার করা হয়েছে। এবং পুরো লাইনটির অর্থ হচ্ছে, ড্রয়েবল ফোল্ডারের মধ্যে ic_launcher_background নামে যে চিত্রটি রয়েছে তা দেখাও। নিচের চিত্রটি লক্ষ করুন :







এ্যাপটি রান করে দেখুন ।




===============================

এতক্ষণ তো দেখলাম এ্যান্ড্রয়েড স্টুডিওতে রাখা সিস্টেম পিকচার গুলো কিভাবে দেখা যায়। কিন্তু আমরা আমাদের নিজেদের কাষ্টম ইমেজ দেখাতে চাই । তাহলে কি করতে হবে ?




এ্যান্ড্রয়েড স্টুডিও মিনিমাইজ করে রাখুন। এরপর কম্পিউটারের যেখানে আমাদের এই প্রজেক্ট ফাইলটি রাখা আছে সেই স্থানটি ওপেন করতে হবে :







আমাদের প্রজেক্টের মূল ফাইলে যেতে হবে। সেখানে মেইন নামক ফোল্ডারের অভ্যন্তরে assets নামে একটি ফোল্ডার তৈরী করতে হবে :






উপরের চিত্রে দেখুন আমাদের প্রজেক্ট এর নাম হচ্ছে মাই এ্যাপলিকেশন, এরপর সেখান থেকে মেইন নামক ফোল্ডারের মধ্যে আমরা এ্যাসেটস নামক একটি ফোল্ডার ক্রিয়েট করলাম। এখন এই এ্যাসেট নামক ফোল্ডারের মধ্যে আমরা আমাদের ইমেজ রাখবো। এখানে আমরা ইমেজ২৮ নামক একটি ইমেজ রাখলাম :


 

এবার আমরা পুনরায় এ্যান্ড্রয়েড স্টুডিওতে ফিরে আসলে দেখতে পাবো যে, এ্যাসেটস নামে নতুন একটি ফোল্ডার তৈরী হয়েছে এবং সেখানে ইমেজ২৮ নামে একটি ফাইল দেখা যাচ্ছে :





এবার এই ইমেজ২৮ ফাইলটিকে আমরা আমাদের ইমেজভিউতে প্রদর্শন করবো ।


প্রথমে এক্সএমএল ফাইলে আমরা ইমেজভিউ এর আইডি দেখে নেবো :


android:id="@+id/imageView"



এবার আমরা ইমেজভিউ এ্যাক্টিভিটি নামে জাভা ফাইলটি ওপেন করে ইমেজভিউকে ইনিলিয়ালাইজ করবো। এরপর এ্যাসেট ফোল্ডারে রাখা ইমেজ২৮ ফাইলটিকে সেই ইমেজভিউতে প্রদর্শন করবো :



এখানে প্রথমে আমরা ট্রাই / ক্যাচ ব্লকের মাধ্যমে দেখবো :



android.widget.ImageView imageView = findViewById(R.id.imageView);

try
{
// get input stream
InputStream ims = getAssets().open("image28.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
imageView.setImageDrawable(d);
//now close the stream:
ims .close();
}
catch(IOException ex)
{
return;
}




এই কোডটুকু  ইমেজভিউ জাভা ফাইলে পেষ্ট করুন :





 প্রোগ্রামটি রান করে দেখুন।


=============================




পরবর্তী লেসন : 7  




এবার  আরেকটি পদ্ধতি :


১। আমরা আরেকটি ইমেজ ফাইল এ্যাসেট ফোল্ডারে রাখব ।


২। আরেকটি ইমেজভিউ এক্সএমএল লেআউট ফাইলে তৈরী করব।


৩। এরপর ইমেজ ওপেন করার জন্য একটি প্রোগ্রাম লিখব এবং প্রোগ্রামটি ইমেজভিউ জাভা

ফাইলের আউটসাইড অনক্রিয়েটে লিখব।


৪। এরপর জাভা অনক্রিয়েটএ সেই প্রোগ্রামটিকে কল করবো।

No comments:

Post a Comment