ماژول ها

Ink API ماژولار است، بنابراین می‌توانید فقط از آنچه نیاز دارید استفاده کنید.

سکته مغزی

ماژول strokes به عنوان پایه و اساس Ink API عمل می‌کند. انواع داده‌های کلیدی در این ماژول عبارتند از:

  • StrokeInputBatch : مجموعه‌ای از ورودی‌های اشاره‌گر، شامل موقعیت، زمان و در صورت تمایل، فشار، شیب و جهت آنها را نشان می‌دهد.
  • InProgressStroke : نشان‌دهنده‌ی stroke ای است که به طور فعال در حال ترسیم است. InProgressStroke برای رندر stroke های جزئی با تأخیر کم و ساخت Stroke نهایی پس از تکمیل ورودی استفاده می‌شود، که پس از آن می‌توان از شیء دوباره استفاده کرد.InProgressStroke توسط InProgressStrokesView استفاده می‌شود.
  • Stroke : یک نمایش تغییرناپذیر از یک stroke نهایی با هندسه ثابت. هر Stroke دارای یک ImmutableStrokeInputBatch (نقاط ورودی)، یک Brush (سبک) و یک PartitionedMesh (شکل هندسی) است. می‌توانید strokeها را در برنامه خود ذخیره، دستکاری و رندر کنید.

هندسه

ماژول Geometry از عملیات هندسی روی اشکال اولیه (با استفاده از کلاس‌های اختصاصی مانند Box و Vec ) و همچنین اشکال دلخواه (با استفاده از PartitionedMesh ) از جمله تشخیص تقاطع و تبدیل پشتیبانی می‌کند. PartitionedMesh همچنین می‌تواند داده‌های اضافی را برای پشتیبانی از رندرینگ در خود نگه دارد.

برس

ماژول brush سبک خطوط را تعریف می‌کند و از دو بخش اصلی تشکیل شده است:

  • Brush : سبک یک خط شامل رنگ پایه، اندازه پایه و BrushFamily را مشخص می‌کند. BrushFamily مشابه خانواده فونت است و سبک یک خط را تعریف می‌کند. برای مثال، یک BrushFamily می‌تواند یک سبک خاص از ماژیک یا هایلایتر را نشان دهد و به خطوط با اندازه‌ها و رنگ‌های مختلف اجازه می‌دهد تا آن سبک را به اشتراک بگذارند.
  • StockBrushes : توابع کارخانه‌ای برای ایجاد نمونه‌های آماده برای استفاده BrushFamily را فراهم می‌کند.

تألیف

ماژول Authoring به شما امکان می‌دهد ورودی اشاره‌گر کاربر را ضبط کرده و آن را به صورت حرکات با تأخیر کم روی صفحه نمایش به صورت بلادرنگ رندر کنید. این ماژول یک InProgressStrokesView ارائه می‌دهد که رویدادهای حرکتی را پردازش کرده و حرکات را هنگام ترسیم نمایش می‌دهد.

پس از تکمیل یک stroke، نما (view) از طریق یک callback ثبت‌شده ( InProgressStrokesFinishedListener ) به برنامه‌ی کلاینت اطلاع می‌دهد. این callback به برنامه اجازه می‌دهد stroke تکمیل‌شده را برای رندر یا ذخیره‌سازی بازیابی کند.

رندرینگ

ماژول Rendering به شما کمک می‌کند تا خطوط جوهر را روی یک بوم اندروید (Android Canvas رسم کنید. این CanvasStrokeRenderer برای Compose و ViewStrokeRenderer را برای طرح‌بندی‌های مبتنی بر نما (view-based layouts) فراهم می‌کند. این رندرکننده‌ها برای رندر با کارایی بالا طراحی شده‌اند و به ارائه تصاویر با کیفیت بالا، از جمله antialiasing، کمک می‌کنند.

برای رندر کردن strokeها، متد create() را برای دریافت یک نمونه CanvasStrokeRenderer فراخوانی کنید. سپس، متد draw() را برای رندر strokeهای تکمیل‌شده ( Stroke ) یا در حال انجام ( InProgressStroke ) روی یک Canvas فراخوانی کنید.

شما می‌توانید هنگام رسم یک stroke، بوم را تغییر شکل دهید. مثال‌ها شامل panning، zooming و rotation می‌شود. برای رندر صحیح stroke، باید transform canvas را به CanvasStrokeRenderer.draw نیز ارسال کنید.

برای جلوگیری از ردیابی جداگانه‌ی تبدیل canvas ، به جای آن ViewStrokeRenderer استفاده کنید.

ذخیره‌سازی

ماژول ذخیره‌سازی ، ابزارهایی را برای سریال‌سازی و از سریال‌سازی خارج کردن کارآمد داده‌های stroke ارائه می‌دهد که عمدتاً بر StrokeInputBatch تمرکز دارد.

این ماژول از بافرهای پروتکل و تکنیک‌های فشرده‌سازی دلتا بهینه‌شده استفاده می‌کند که منجر به صرفه‌جویی قابل توجه در ذخیره‌سازی در مقایسه با روش‌های ساده می‌شود.

ماژول ذخیره‌سازی، ذخیره، بارگذاری و اشتراک‌گذاری strokeها را ساده می‌کند.