এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব-১৩] :: Bitmap ব্যবহার করে Animation

আজকে আমরা শিখব Bitmap ব্যবহার করে একটি বলের animation।  গত পর্বের Rectangle.java ক্লাস ফাইল এ আজকে আমরা একটি বলের animation রান করব।

প্রথমেই আমরা একটি বলের ছবি প্রোজেক্ট এর res>drawable-hdpi এ কপি পেস্ট করে দেই। তারপর আমরা যাব আমাদের Rectangle.java ক্লাস ফাইলএ। আমরা জানি যে Bitmap pixel hold করে রাখে আর canvas draw calls host করে রাখে, আর এতে Bitmap write করে।

বলের জন্য Bitmap দিয়ে একটি variable ডিক্লিয়ার করে দেই Bitmap rball এভাবে।  rball কে Bitmapfactory দ্বারা Constructor এর মধ্যে initialize করে দেই এভাবে

rball = BitmapFactory.decodeResource(getResources(), R.drawable.rball);

এখন বলের অবস্থানভেদে canvas এ animation এর জন্য দুইটা variable x,y globally ডিক্লিয়ার করে দেই। বলের অবস্থান initial value হিসেবে Constructor  x=0, y=0 এভাবে ডিক্লিয়ার করে দেই।  এখন বলের movement condition এভাবে সেট করে দেই যেন বলটি x ও y axis এ 10 করে বৃদ্ধি পাবে যতক্ষণ পর্যন্ত না canvas এর width ও height এর সমান হয়।  যখনেই x এর মান canvas এর width থেকে বেশি হয়ে যাবে তখনেই x=0 থেকে আবার বলটি animate করা শুরু করবে।  y axis এর বেলায়ও তেমনি।

package com.coder_art.android10;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;

public class Rectangle extends View {

Bitmap rball;

int x,y;

public Rectangle(Context context) {

super(context);

rball = BitmapFactory.decodeResource(getResources(), R.drawable.rball);
x=0;
y=0;

}

@Override
protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if(x< canvas.getWidth())
{
x +=10;
}
else
{
x=0;
}

if(y<canvas.getHeight())
{
y +=10;
}

else {

y=0;
}

Paint move = new Paint();

canvas.drawBitmap(rball, x, y, move );

invalidate();

}

}

এখন canvas টি drawBitmap দ্বারা start করে দিতে হবে এভাবে canvas.drawBitmap(bitmap, left, top, paint);

এখানে bitmap এর value হবে rball, left ও top যথাক্রমে x, y এবং paint এর মান হবে Paint এর যেই variable এর মধ্যে নতুন একটি instance তৈরি করা হয়েছিল।  তারপর invalidate(); এই ফাংশনটি দিয়ে MainActivity তে অ্যাপটি রান করলে বলটির animation দেখা যাবে।   এখানে invalidate(); মূলত ব্যবহার করা হয়েছে, বলটিকে screen এ বার বার redraw করার জন্য।

এইছিল আজকে Bimap ব্যবহার করে বলের Animation।


আজকের প্রোজেক্ট এর সোর্স কোড  ডাওনলোড করে নিন এখান থেকে।

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

Previous
Next Post »

পোস্ট সম্পর্কিত সমস্যার জন্য মন্তব্য দিন।ডাউনলোড লিঙ্ক এ সমস্যা জন্য ইনবক্স করুন Aimzworld007
ConversionConversion EmoticonEmoticon

Thanks for your comment