ইঙ্ক এপিআই মডুলারাইজড, তাই আপনি কেবল আপনার যা প্রয়োজন তা ব্যবহার করতে পারেন।
স্ট্রোক
স্ট্রোক মডিউলটি ইঙ্ক এপিআই-এর ভিত্তি হিসেবে কাজ করে। এই মডিউলের মধ্যে মূল ডেটা টাইপগুলি হল:
-
StrokeInputBatch: পয়েন্টার ইনপুটগুলির একটি সিরিজ উপস্থাপন করে, যার মধ্যে তাদের অবস্থান, টাইমস্ট্যাম্প এবং ঐচ্ছিকভাবে চাপ, টিল্ট এবং ওরিয়েন্টেশন অন্তর্ভুক্ত থাকে। -
InProgressStroke: সক্রিয়ভাবে আঁকা একটি স্ট্রোককে প্রতিনিধিত্ব করে।InProgressStrokeকম ল্যাটেন্সিতে আংশিক স্ট্রোক রেন্ডার করতে এবং ইনপুট সম্পূর্ণ হওয়ার পরে চূড়ান্তStrokeতৈরি করতে ব্যবহৃত হয়, যার পরে বস্তুটি পুনরায় ব্যবহার করা যেতে পারে।InProgressStrokeInProgressStrokesদ্বারা ব্যবহৃত হয়। -
Stroke: স্থির জ্যামিতির সাথে একটি চূড়ান্ত স্ট্রোকের একটি অপরিবর্তনীয় উপস্থাপনা। প্রতিটিStrokeএকটিImmutableStrokeInputBatch(ইনপুট পয়েন্ট), একটিBrush(স্টাইল) এবং একটিPartitionedMesh(জ্যামিতিক আকৃতি) থাকে। আপনি আপনার অ্যাপ্লিকেশনের মধ্যে স্ট্রোক সংরক্ষণ, পরিচালনা এবং রেন্ডার করতে পারেন।
জ্যামিতি
জ্যামিতি মডিউলটি আদিম আকারগুলিতে ( Box এবং Vec এর মতো ডেডিকেটেড ক্লাস ব্যবহার করে) জ্যামিতিক ক্রিয়াকলাপগুলিকে সমর্থন করে, পাশাপাশি ইচ্ছাকৃত আকারগুলিতে ( PartitionedMesh ব্যবহার করে), ছেদ সনাক্তকরণ এবং রূপান্তর সহ। PartitionedMesh রেন্ডারিং সমর্থন করার জন্য অতিরিক্ত ডেটাও ধরে রাখতে পারে।
ব্রাশ
brush মডিউল স্ট্রোকের ধরণ নির্ধারণ করে। এটি দুটি প্রধান অংশ নিয়ে গঠিত:
-
Brush: স্ট্রোকের স্টাইল নির্দিষ্ট করে যার মধ্যে বেস কালার, বেস সাইজ এবংBrushFamilyঅন্তর্ভুক্ত।BrushFamilyএকটি ফন্ট ফ্যামিলির অনুরূপ, এটি স্ট্রোকের স্টাইলকে সংজ্ঞায়িত করে। উদাহরণস্বরূপ, একটিBrushFamilyমার্কার বা হাইলাইটারের একটি নির্দিষ্ট স্টাইলকে প্রতিনিধিত্ব করতে পারে, যা বিভিন্ন আকার এবং রঙের স্ট্রোককে সেই স্টাইল ভাগ করে নেওয়ার অনুমতি দেয়। -
StockBrushes: ব্যবহারের জন্য প্রস্তুতBrushFamilyইনস্ট্যান্স তৈরির জন্য কারখানার ফাংশন প্রদান করে।
রচনা
কম্পোজ অথরিং মডিউল আপনাকে ব্যবহারকারীর টাচ ইনপুট ক্যাপচার করতে এবং রিয়েল টাইমে স্ক্রিনে কম-লেটেন্সি স্ট্রোক হিসাবে রেন্ডার করতে দেয়। এটি InProgressStrokes কম্পোজেবলের মাধ্যমে অর্জন করা হয়, যা গতির ইভেন্টগুলি প্রক্রিয়া করে এবং স্ট্রোকগুলি আঁকার সাথে সাথে প্রদর্শন করে।
একবার স্ট্রোক সম্পন্ন হলে, কম্পোজেবল একটি InProgressStrokesFinishedListener কলব্যাক ব্যবহার করে ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অবহিত করে। এটি অ্যাপ্লিকেশনটিকে রেন্ডারিং বা স্টোরেজের জন্য সমাপ্ত স্ট্রোকগুলি পুনরুদ্ধার করতে দেয়।
কম্পোজে, InProgressStrokes এই কলব্যাকটি onStrokesFinished প্যারামিটারে নেয়। রেন্ডারিং মডিউল ব্যবহার করে স্ক্রিনে কমিট করার জন্য সমাপ্ত স্ট্রোকগুলি অন্য একটি কম্পোজেবলে পাস করুন।
রেন্ডারিং
রেন্ডারিং মডিউলটি অ্যান্ড্রয়েড Canvas কালি স্ট্রোক আঁকা সহজ করে। এটি কম্পোজের জন্য CanvasStrokeRenderer ViewStrokeRenderer করে। এই রেন্ডারারগুলি রেন্ডারিং কর্মক্ষমতা অপ্টিমাইজ করে এবং অ্যান্টিএলিয়াসিং সহ উচ্চ-মানের ভিজ্যুয়াল সরবরাহ করতে সহায়তা করে।
স্ট্রোক রেন্ডার করার জন্য, CanvasStrokeRenderer ইনস্ট্যান্স পেতে create() পদ্ধতিটি কল করুন, এবং তারপর finished ( Stroke ) অথবা in-progress ( InProgressStroke ) স্ট্রোকগুলিকে Canvas এ রেন্ডার করার জন্য draw() পদ্ধতিটি কল করুন।
স্ট্রোক আঁকার সময় আপনি ক্যানভাস রূপান্তর করতে পারেন। উদাহরণস্বরূপ প্যানিং, জুমিং এবং রোটেটিং অন্তর্ভুক্ত। স্ট্রোকটি সঠিকভাবে রেন্ডার করার জন্য, আপনাকে canvas রূপান্তরটি CanvasStrokeRenderer.draw এ পাস করতে হবে।
canvas ট্রান্সফর্ম আলাদাভাবে ট্র্যাক করা এড়াতে, ViewStrokeRenderer ব্যবহার করুন।
স্টোরেজ
স্টোরেজ মডিউলটি স্ট্রোক ডেটা দক্ষতার সাথে সিরিয়ালাইজ এবং ডিসিরিয়ালাইজ করার জন্য ইউটিলিটি প্রদান করে, প্রাথমিকভাবে StrokeInputBatch উপর দৃষ্টি নিবদ্ধ করে।
মডিউলটি প্রোটোকল বাফার এবং অপ্টিমাইজড ডেল্টা কম্প্রেশন কৌশল ব্যবহার করে, যার ফলে সহজ পদ্ধতির তুলনায় উল্লেখযোগ্য স্টোরেজ সাশ্রয় হয়।
স্টোরেজ মডিউলটি স্ট্রোক সংরক্ষণ, লোডিং এবং ভাগ করে নেওয়া সহজ করে।