وحدات

تنقسم واجهة Ink API إلى وحدات، وتتيح لك استخدام ما تحتاج إليه فقط.

السكتات الدماغية

تعمل وحدة Strokes كأساس لمكتبة الحبر، حيث توفّر واجهة برمجة تطبيقات أساسية ويحتوي على أنواع البيانات الأساسية للتفاعل مع المكتبة. تشمل أنواع البيانات الرئيسية في هذه الوحدة ما يلي:

  • StrokeInputBatch: ويمثل سلسلة من إدخالات المؤشر والموضع الذي يشمل طابعًا زمنيًا والطابع الزمني الضغط والإمالة والاتجاه اختياريًا. ويمكن الاستفادة من هذه البيانات مع Stroke أو InProgressStroke وهي النوع الذي يوفر المدخلات للكتابة بخط اليد مكتبة التعريف.
  • Stroke: تمثيل دائم لخط نهائي بأشكال هندسية ثابتة. تتألّف الخطوط من ImmutableStrokeInputBatch (نقاط الإدخال) وBrush (النمط) و PartitionedMesh (شكل هندسي). يمكن تخزين الخطوط ومعالجتها وعرضها في تطبيقك.
  • InProgressStroke: نظير قابل للتغيير Stroke مصممة من أجل المعالجة الإضافية للمدخلات والعرض في الوقت الفعلي أثناء الرسم الدفع. وعلى الرغم من أنه غالبًا ما يتم استخدامه بشكل غير مباشر من خلال InProgressStrokesView، InProgressStroke ويمكن استخدامها بشكل مباشر للحصول على خيارات تخصيص متقدمة.

هندسة

وحدة هندسة توفر مجموعة من المبادئ الهندسية الأساسية والمعقدة والأشكال إلى جانب عمليات اكتشاف التقاطعات وعمليات التحويل. تتكامل هذه الأساسيات بسلاسة مع ضربات الحبر، مما يمكّنك من بناء ميزات مثل ممحاة الضغط بالكامل وأدوات تحديد التظليل.

في حين أن الصفوف مثل Box Vec تسهّل في المقام الأول والعمليات الهندسية يجوز لـ PartitionedMesh تتضمّن أيضًا بيانات متعلّقة بالعرض

فرشاة

تعمل وحدة الأداة الملوّنة كإعدادات توضيحية لإنشاء الخطوط وعرضها، وتعمل بطريقة مشابهة لخط نصي. يتضمّن عنصر Brush الخصائص التالية:

  • اللون: يمكن أن يكون لونًا واحدًا أو أساسًا للتأثيرات المتعدّدة والمواد المتعدّدة.
  • المقاس: يمكن أن يكون ثابتًا أو يمكن استخدامه كأساس لتعديلات الحجم الديناميكي.
  • العائلة: شبيهة بالخط الطباعي النصي، تحدد العائلة الخط الطباعي الكلي والنمط.
  • Epsilon: للتحكّم في مستوى التفاصيل في هندسة المتّجه للخط، يمثّل أصغر وحدة للتمييز البصري.

تلعب السمة epsilon دورًا مهمًا في تحديد دقة نظام الإحداثيات. مزيد من الإرشادات في القسم واجهات برمجة تطبيقات الفرشاة حول كيفية لاختيار قيمة إبسيلون مناسبة.

يُعدّ BrushFamily ميزة قوية لإنشاء خطوط تعبيرية بدون التعمّق في الأشكال الهندسية المعقدة أو رمز العرض. توفر المكتبة مجموعة من الإعدادات المحددة مسبقًا StockBrushes، بما في ذلك قلم وأقلام تمييز وأقلام تمييز حساسة للضغط.

التأليف

Authoring تمكّن المطوّرين من التقاط مدخلات لمس المستخدم وعرضها وقت الاستجابة المنخفض على الشاشة في الوقت الفعلي. يتم تحقيق ذلك من خلال صف واحد (InProgressStrokesView) الذي يعالج أحداث الحركة ويصور الخطوط أثناء رسمها.

وبمجرد اكتمال الحد الخارجي، ترسل الوحدة إشعارًا إلى تطبيق العميل باستخدام onStrokesFinished() معاودة الاتصال بـ InProgressStrokesFinishedListener يسمح الإجراء المُعاد للتطبيق باسترداد data الخطوط النهائية للعرض أو التخزين.

العرض

تعمل وحدة المعالجة على تبسيط عملية رسم خطوط الحبر على جهاز Android Canvas. تقدّم الوحدة CanvasStrokeRenderer لميزة "الإنشاء" وViewStrokeRenderer لتصاميم الصفحات المستندة إلى العرض، وكلاهما يُحسِّن أداء العرض ويضمن مرئيات عالية الجودة، بما في ذلك ميزة "إزالة التمويه".

لعرض خطوط على لوحة، احصل على مثيل CanvasStrokeRenderer باستخدام الإجراء create() . بعد ذلك، استخدم دالة الرسم draw() لعرض الخطوط المنتهية أو قيد التقدم. الضغط على لوحة.

يمكن تحويل اللوحة (تمريرها أو تكبيرها أو تدويرها) كجزء من رسم الخط، ولكن للتأكّد من أنّ الخط يظهر بأفضل شكل ممكن على الشاشة، يجب أيضًا تمرير التحويل الذي تم تطبيقه على اللوحة إلى CanvasStrokeRenderer#draw(). ولتجنُّب الحاجة إلى تتبُّع ذلك بشكل منفصل، استخدِم ViewStrokeRenderer بدلاً من ذلك.