আজকে আমরা শিখব 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।
আজকের প্রোজেক্ট এর সোর্স কোড ডাওনলোড করে নিন এখান থেকে।
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।
আমি নাঈম হায়দার ঋদ্ধি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 76 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 6 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
Computer ও Programming পছন্দ, আমার youtube channel https://www.youtube.com/channel/UCYKbAf2kXLgKav30hd3zDPQ . আমার ফেসবুক প্রোফাইল https://www.facebook.com/nayeem.riddhi
শেয়ার করার জন্য ধন্যবাদ।