تم تقسيم Ink API إلى وحدات، ما يتيح لك استخدام ما تحتاج إليه فقط.
الضربات
يشكّل وحدة الضربات الأساس الذي تستند إليه Ink API. تشمل أنواع البيانات الرئيسية ضمن هذه الوحدة ما يلي:
StrokeInputBatch: تمثّل هذه السمة سلسلة من إدخالات المؤشر، بما في ذلك موضعها وطابعها الزمني، ويمكن أن تتضمّن أيضًا الضغط والإمالة والاتجاه.InProgressStroke: تمثّل ضربة يتم رسمها حاليًا. يتم استخدامInProgressStrokeلعرض ضربات جزئية بزمن انتقال منخفض ولإنشاءStrokeالنهائي بعد اكتمال الإدخال، وبعد ذلك يمكن إعادة استخدام العنصر. `يتم استخدامInProgressStrokeمن قِبلInProgressStrokesView. يتم استخدامStroke: تمثيل غير قابل للتغيير لضربة نهائية ذات شكل هندسي ثابت. يحتوي كلStrokeعلىImmutableStrokeInputBatch(نقاط الإدخال) وBrush(النمط) وPartitionedMesh(الشكل الهندسي). يمكنك تخزين ضربات الفرشاة ومعالجتها وعرضها داخل تطبيقك.
هندسة
يتيح نموذج Geometry إجراء عمليات هندسية على الأشكال الأساسية (باستخدام فئات مخصّصة مثل Box وVec)، بالإضافة إلى الأشكال العشوائية (باستخدام PartitionedMesh)، بما في ذلك رصد التقاطع والتحويل. يمكن أن يحتوي PartitionedMesh أيضًا على بيانات إضافية للمساعدة في العرض.
فرشاة
يحدّد الوحدة brush نمط الخطوط. ويتألف من جزأين رئيسيين:
Brush: تحدّد هذه السمة نمط الخط، بما في ذلك اللون الأساسي والحجم الأساسي وBrushFamily.BrushFamilyمشابهة لمجموعة خطوط، فهي تحدد نمطًا للسكتة الدماغية. على سبيل المثال، يمكن أن يمثّلBrushFamilyنمطًا معيّنًا من أقلام التحديد أو أقلام التمييز، ما يتيح مشاركة هذا النمط مع ضربات بأحجام وألوان مختلفة.-
StockBrushes: توفّر هذه السمة دوال مصنع لإنشاء مثيلاتBrushFamilyجاهزة للاستخدام.
التأليف
يتيح لك وحدة إنشاء المحتوى تسجيل بيانات إدخال مؤشر المستخدم وعرضها كضربات فرشاة بزمن استجابة منخفض على الشاشة في الوقت الفعلي. توفّر هذه الفئة InProgressStrokesView التي تعالج أحداث الحركة وتعرض الضربات أثناء رسمها.
بعد اكتمال ضربة القلم، يُرسل العرض إشعارًا إلى تطبيق العميل من خلال
دالة ردّ مسجّلة
(InProgressStrokesFinishedListener). تتيح دالة الردّ
للتطبيق استرداد ضربة القلم المكتملة لعرضها أو تخزينها.
العرض
تساعدك وحدة Rendering في رسم ضربات الحبر على Canvas يعمل بنظام التشغيل Android.
توفّر هذه السمة CanvasStrokeRenderer لإنشاء التنسيقات وViewStrokeRenderer للتنسيقات المستندة إلى العرض. تم تصميم أدوات العرض هذه لتقديم أداء عالٍ، وهي تساعد في عرض صور عالية الجودة، بما في ذلك ميزة "التنعيم".
لعرض ضربات الفرشاة، استخدِم طريقة create() للحصول على مثيل CanvasStrokeRenderer. بعد ذلك، استدعِ طريقة draw() لعرض ضربات مكتملة (Stroke) أو قيد التقدم (InProgressStroke) على Canvas.
يمكنك تغيير شكل لوحة العرض عند رسم خط. وتشمل الأمثلة تحريك الكاميرا أفقيًا أو عموديًا وتكبير الصورة وتدويرها. لعرض الضربة بشكل صحيح، يجب أيضًا تمرير عملية التحويل canvas إلى CanvasStrokeRenderer.draw.
لتجنُّب تتبُّع عملية التحويل canvas بشكل منفصل، استخدِم ViewStrokeRenderer بدلاً من ذلك.
مساحة التخزين
يوفّر وحدة التخزين أدوات لتسلسل بيانات ضربات الفرشاة وإلغاء تسلسلها بكفاءة، مع التركيز بشكل أساسي على StrokeInputBatch.
تستخدم الوحدة مخازن مؤقتة للبروتوكول وتقنيات ضغط دلتا محسّنة، ما يؤدي إلى توفير كبير في مساحة التخزين مقارنةً بالطرق البسيطة.
تسهّل وحدة التخزين حفظ اللمسات وتحميلها ومشاركتها.