এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব ৩৭] :: Quotation app(কোটেশান অ্যাপ) : FragmentImageView জাভা ক্লাস-২ এর সেটিংস্‌

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

আজকের পর্বে FragmentImageView জাভা ক্লাস এর সেটআপ পর্ব শেষ করব। প্রথমেই আমাদের যা করতে তা হচ্ছে onCreateView মেথডটি সেট করা। এখানে আপনারা দেখতে পারবেন onCreateView মেথডের ভিতরে parameter হিসেবে LayoutInflater আছে। এই LayoutInflater এর কাজ হচ্ছে যেকোনো xml layout initialize করে দেয়া। তাহলে এর ভিতরে xml এর প্রয়োজনীয় value গুলো এখানে initialize করে দেয়। এখানে imageView এর জন্য যে layout টি নেয়া হয়েছে তার মধ্য থেকে শুধু সেই imageView টি রিটার্ন করতে হবে। সেইজন্য প্রথমেই inflate করে দিতে হবে imageView কে। তারপর মূল লেআউট কে চিনিয়ে দেয়ার জন্য ওই imageView কে লেআউট এর সাথে casting করে দিতে হবে। রিটার্ন value হিসেবে imgV কে রিটার্ন করে দিতে হবে।

এখন আরেকটি ব্যাপার সমাধান করা বাকি রয়ে গেছে। তা হচ্ছে আমরা যখন একটি লেআউট থেকে আরেকটি লেআউট এ যাব তখন এন্ড্রয়েড এর শর্ত অনুযায়ী তা ওই লেআউট draw করতে হবে। এই জন্য আমাদের প্রয়োজন পরবে Bitmap । কিন্ত আমাদের মেইন view হচ্ছে onCreateView , সেইজন্য আমাদেরকে এই মেথডের মধ্যেই এটি initialize করে দিতে হবে।

আমরা আগেই জানি কিভাবে Bitmap এর জন্য resource সেটআপ করে দিতে হয়, তাই নিচের মত করে কোডগুলো সেটআপ করে দেয়ঃ

package com.coderart.quoteapp;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class FragmentImageView extends Fragment  {

	Integer itemData;

	Bitmap myBitmap;

    ImageView vImage;

	@Override
	public void onCreate(Bundle savedInstanceState)
	{

		super.onCreate(savedInstanceState);

	}

	@Override
	public View onCreateView
	(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)

	{

		View imgV = inflater.inflate(R.layout.imageview, container, false);

		vImage = (ImageView) imgV.findViewById(R.id.mainview);

		ImageInViewPager();

		return imgV;

	}

	public void ImageInViewPager()

	{
		try
		   {
			myBitmap = BitmapFactory.decodeResource
					( getResources(),  itemData);
			}

		catch (Exception e) {

			e.printStackTrace();

		}

		 if (myBitmap != null) {

		    	try {
							if (vImage != null) {
								vImage.setImageBitmap(myBitmap);
							}
						}

						catch (Exception e) {
							e.printStackTrace();
						}

					}
		}

	@Override
	public void onDestroyView()
	{

		super.onDestroyView();

		if (myBitmap != null)
		{

			myBitmap.recycle();

			myBitmap = null;

		}

	}

}

এখানে onDestroyView মেথডে condition দিয়ে recycle() মেথড দ্বারা Bitmap এরমেমরি ক্লিয়ার করা হচ্ছে। অপরদিকে এর বিপরীতে onCreateView মেথডে condition দিয়ে Bitmap এ image কে সেট করা হচ্ছে।

এই ছিল আজকের FragmentImageView জাভা ক্লাস-২ এর সেটিংস্‌ সম্পর্কে আলোচনা।

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

Level 0

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

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


টিউনস


আরও টিউনস


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


টিউমেন্টস