এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব-১৬] :: SurfaceView ক্লাস এ Canvas Lock, Draw এবং Post এর ব্যবহার

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

গত পর্বে আমরা SurfaceView ক্লাসের সেটিংস্‌ সম্পর্কে আলোচনা করেছিলাম।আজকের পর্বে আমরা গত পর্বের SurfaceView ক্লাস এ Canvas Lock, Draw, Post এর ব্যবহার সম্পর্কে আলোচনা করব।

শুরতেই আমরা যাব run() মেথডে।run() মেথডে while এর ভেতরে if দিয়ে একটি কন্ডিশান সেটআপ করে দিতে হবে যে চেক করার জন্য আমদের surface বিদ্যমান আছে কিনা, যদি না থাকে তাহলে তা while লুপের মধ্যে তা continue করবে।

package com.nayeem.android14;

import android.content.Context;
import android.graphics.Canvas;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Ourview extends SurfaceView implements Runnable {

	 Thread ourThread= null;

	 SurfaceHolder holder;

	 boolean  value1 = false;

	public Ourview(Context context) {

		super(context);

		holder = getHolder();

	}

	@Override
	public void run() {

		while (value1== true)
		{
			if(!holder.getSurface().isValid())

			{
				continue;

			}

			Canvas c = holder.lockCanvas();

			c.drawARGB(255, 150, 150, 80);

			holder.unlockCanvasAndPost(c);

		}

	}

	public void pause() {

		value1= false;

		while(true)
		{

			try
			{
				ourThread.join();
			}
			catch (InterruptedException e)
			{
				e.printStackTrace();
			}

			break;

		}

		ourThread = null;
	}

	public void Resume() {

		value1= true;

		ourThread = new Thread(this);

		ourThread.start();

	}

}

তারপর আমাদেরকে lockcanvas কে সেটআপ করে দিতে হবে। lockCanvas() এমন একটা মেথড যা লিখার জন্য একটি surface area তৈরি করে ততক্ষন পর্যন্ত যতক্ষন না unlockCanvasAndPost() কে কল না দেয়া হয়। lockCanvas() এবং unlockCanvasAndPost() এর ভিতরে canvas Bitmap এ নির্দিষ্ট color সেট করে দেয়ার জন্য drawARGB(255, 150, 150, 80); এভাবে ডিক্লিয়ার করে দেয়।

এইছিল আজকের SurfaceView ক্লাস এ Canvas Lock, Draw, Post এর ব্যবহার সম্পর্কে আলোচনা।

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

Level 0

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

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


টিউনস


আরও টিউনস


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


টিউমেন্টস