Frame Layout
এই পর্বে আমরা দেখবো Frame Layout নিয়ে কিভাবে কাজ করা হয় । ফ্রেম লেয়াউট এ আমরা একাধিক ভিউ / ভিউগ্রুপ নিবো কিন্তু এক স্ক্রিনে মাত্র একটি ভিউ / ভিউগ্রুপ কে দেখানো যাবে । ধরা যাক আমাদের লেআউট এ ৩টি ভিউ (ছবির ভিউ) আছে । তাহলে স্ক্রিনে আমরা মাত্র ১টি ছবিই দেখাতে পারবো । সেই ভিউ এর উপর ক্লিক করলে বাকি ভিউটি আসবে । এভাবে সিরিয়াল ম্যাইন্টেইন করে একটার পর আরেকটা ভিউ আসতে থাকবে । যেমন -
এখানে প্রথমে পুরো স্ক্রিন জুড়ে আমার ছবি দেখা যাচ্ছে । Frame Layout এ একটি ভিউ এর উপর অন্য আরেকটি ভিউ বসে । তাই ঝামেলা এড়াতে বাকি ভিউদুইটি ইনভিসিবল করে দিলাম । এখন আমার ছবির উপর ক্লিক করলে ফুটবল-কাপের ছবিটি আসবে , আবার ফুটবল-কাপের ছবিটির উপর ক্লিক করলে মেসির ছবি আসবে । এভাবে সিরিয়াল অনুযায়ী লুপ আকারে চলতে থাকবে । অবশ্য এজন্য জাভাতেও কিছু কোড লিখতে হবে ।
activity_main.xml - Root Layout হিসেবে Frame Layout নিলাম । এরভিতরে আমরা যে ৩টি ছবি দেখাবো সেজন্য ৩টি ImageView নিলাম । প্রতি ImageView তে onClick ম্যাথড ডিক্লার করলাম এবং ম্যাথডের সেইম নাম দিলাম কারন যে ছবিতেই ক্লিক করা হোক নাহ কেন সেই ম্যাথডের ভিতরে গিয়ে কাজ করবে । প্রথম ImageView টি VISIBLE রেখে বাকি দুইটি INVISIBLE করে দিলাম ।
এবার জাভা কোডে আসা যাক ।
MainActivity.java -
এখানে খুব সিম্পল কোড করা হইছে । আশা করি সবাই বুঝতে পারছেন । যেহেতু আমার ছবিটি VISIBLE অবস্থায় আছে তাই আমার ছবির আইডি টা view তে চলে আসবে । if-else দিয়ে কন্ডিশনে ফেলে দিলাম যে যদি স্ক্রিনে ক্লিক পরে এবং আমার ছবি টা VISIBLE অবস্থায় থাকে তাহলে সেটি GONE মানে INVISIBLE অবস্থায় চলে আসবে । এখানে আপনি চাইলে GONE / INVISIBLE যে কোনটা ইউজ করতে পারেন । এবং আমার ছবিটা INVISIBLE অবস্থায় গিয়ে ফুটবল-কাপের ছবিটা VISIBLE করে দিবে । আবার ফুটবল-কাপের ছবিতে ক্লিক করলে মেসির ছবি VISIBLE করবে । এবং শেষমেষ এই দুইটি ছবি বাদে মেসির ছবিটাই থাকবে তাই আর কন্ডিশন দেয়ার দরকার পড়লো নাহ এবং সেটাতে ক্লিক করলে আবার আমার ছবিটি VISIBLE করে দিবে । এভাবে অটোমেটিক লুপ আকারে চলতে থাকবে ।
এবার এপ টা রান করুন । ধন্যবাদ সবাইকে , দেখা হবে আগামী পর্বে 😊😊😊
এখানে প্রথমে পুরো স্ক্রিন জুড়ে আমার ছবি দেখা যাচ্ছে । Frame Layout এ একটি ভিউ এর উপর অন্য আরেকটি ভিউ বসে । তাই ঝামেলা এড়াতে বাকি ভিউদুইটি ইনভিসিবল করে দিলাম । এখন আমার ছবির উপর ক্লিক করলে ফুটবল-কাপের ছবিটি আসবে , আবার ফুটবল-কাপের ছবিটির উপর ক্লিক করলে মেসির ছবি আসবে । এভাবে সিরিয়াল অনুযায়ী লুপ আকারে চলতে থাকবে । অবশ্য এজন্য জাভাতেও কিছু কোড লিখতে হবে ।
activity_main.xml - Root Layout হিসেবে Frame Layout নিলাম । এরভিতরে আমরা যে ৩টি ছবি দেখাবো সেজন্য ৩টি ImageView নিলাম । প্রতি ImageView তে onClick ম্যাথড ডিক্লার করলাম এবং ম্যাথডের সেইম নাম দিলাম কারন যে ছবিতেই ক্লিক করা হোক নাহ কেন সেই ম্যাথডের ভিতরে গিয়ে কাজ করবে । প্রথম ImageView টি VISIBLE রেখে বাকি দুইটি INVISIBLE করে দিলাম ।
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/mashiur"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/mashuir"
android:onClick="FrameChange" />
<ImageView
android:id="@+id/footballCup"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/footballcup"
android:onClick="FrameChange"
android:visibility="gone"/>
<ImageView
android:id="@+id/messi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/messi"
android:onClick="FrameChange"
android:visibility="gone"/>
</FrameLayout>
এবার জাভা কোডে আসা যাক ।
MainActivity.java -
public class MainActivity extends AppCompatActivity {
ImageView mashiur, footballCup, messi ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fabric.with(this, new Crashlytics());
setContentView(R.layout.activity_main);
mashiur = findViewById(R.id.mashiur);
footballCup = findViewById(R.id.footballCup);
messi = findViewById(R.id.messi);
}
public void FrameChange(View view) {
if (view.getId()==R.id.mashiur){
mashiur.setVisibility(View.GONE);
footballCup.setVisibility(View.VISIBLE);
}else if(view.getId()==R.id.footballCup){
footballCup.setVisibility(View.GONE);
messi.setVisibility(View.VISIBLE);
}else {
messi.setVisibility(View.GONE);
mashiur.setVisibility(View.VISIBLE);
}
}
}
এখানে খুব সিম্পল কোড করা হইছে । আশা করি সবাই বুঝতে পারছেন । যেহেতু আমার ছবিটি VISIBLE অবস্থায় আছে তাই আমার ছবির আইডি টা view তে চলে আসবে । if-else দিয়ে কন্ডিশনে ফেলে দিলাম যে যদি স্ক্রিনে ক্লিক পরে এবং আমার ছবি টা VISIBLE অবস্থায় থাকে তাহলে সেটি GONE মানে INVISIBLE অবস্থায় চলে আসবে । এখানে আপনি চাইলে GONE / INVISIBLE যে কোনটা ইউজ করতে পারেন । এবং আমার ছবিটা INVISIBLE অবস্থায় গিয়ে ফুটবল-কাপের ছবিটা VISIBLE করে দিবে । আবার ফুটবল-কাপের ছবিতে ক্লিক করলে মেসির ছবি VISIBLE করবে । এবং শেষমেষ এই দুইটি ছবি বাদে মেসির ছবিটাই থাকবে তাই আর কন্ডিশন দেয়ার দরকার পড়লো নাহ এবং সেটাতে ক্লিক করলে আবার আমার ছবিটি VISIBLE করে দিবে । এভাবে অটোমেটিক লুপ আকারে চলতে থাকবে ।
এবার এপ টা রান করুন । ধন্যবাদ সবাইকে , দেখা হবে আগামী পর্বে 😊😊😊
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন