বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

Draw!/ ড্র করা

যখনই আপনি আপনার অবেজক্ট তৈরী করবেন এবং পরিমাপের কোড ঠিক করবেন, আপনি onDraw()বাস্তবায়ন করতে পারবেন। প্রতিটা ভিউ onDraw() ভিন্নভাবে বাস্তবায়ন করে, কিন্তু কিছু কমন অপারেশন আছে যা অধিকাংশ ভিউ শেয়ার করে:

  • drawText()ব্যবহার করে টেক্সট ড্র করা। setTpeface()কল করার মাধ্যমে টাইপফেস এবং setColor()কল করার মাধ্যমে টেক্সট নির্দিষ্ট করুন।

  • drawText(), drawOval()এবং drawArc() ব্যবহার করে প্রিমিটিভ (প্রাথমিক) শেপ (কাঠাােম) ড্র করুন। setStyle()কল করা মাধ্যমে কাঠামোটি ফিলড, আউটলআনড বা উভয় অবস্থায় আছে কিনা তা পরিবর্তন করুন।

  • path ক্লাস ব্যবহার করে আরও জটিল শেপ ড্র করুন। একটি path অবজেক্টে লাইন এবং কার্ভ যোগ করার মাধ্যমে একটি শেপ নির্ধারন করুন, এরপর drawPath()ব্যবহার করে শেপ ড্র করুন। ঠিক প্রাথমিক শেপের মতো, পাথও setStyle()এর উপর ভিত্তি করে আউটলাইনড বা ফিলড বা উভয়ই হতে পারে।

  • LinearGradient অবজেক্ট তৈরী করার মাধ্যমে গ্রাডিয়েন্ট ফিল নির্ধারণ করুন। পূর্ণ শেপে আপনার LinearGradient ব্যবহার করতে setShader()কল করুন।

  • drawBitmap() ব্যবহার করে বিটম্যাপ ড্র করুন।

উদাহরনস্বরূপ, এখানে একটি কোড আছে যা PieChart ড্র করে। এটা টেক্সট, লাইন এবং শেপ একসাথে নিয়ে কাজ করেছে:

protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);

   // Draw the shadow
   canvas.drawOval(
           mShadowBounds,
           mShadowPaint
   );

   // Draw the label text
   canvas.drawText(mData.get(mCurrentItem).mLabel, mTextX, mTextY, mTextPaint);

   // Draw the pie slices
   for (int i = 0; i < mData.size(); ++i) {
       Item it = mData.get(i);
       mPiePaint.setShader(it.mShader);
       canvas.drawArc(mBounds,
               360 - it.mEndAngle,
               it.mEndAngle - it.mStartAngle,
               true, mPiePaint);
   }

   // Draw the pointer
   canvas.drawLine(mTextX, mPointerY, mPointerX, mPointerY, mTextPaint);
   canvas.drawCircle(mPointerX, mPointerY, mPointerSize, mTextPaint);
}