حبر

  
يمكنك إنشاء أفضل تطبيقات القلم في المجال. نقلّل من العوائق التي تمنع المطوّرين من إنشاء تجارب كتابة بالحبر جميلة وعالية الأداء. تتوافق هذه المكتبة مع ميزة "الكتابة بالحبر" على Android وJVM من جهة الخادم (تتوافق حاليًا مع Linux لأجهزة x86_64).
آخر خبر الإصدار المستقر إصدار محتمل الإصدار التجريبي الإصدار الأولي
‫17 يونيو 2026 1.0.0 - - ‎1.1.0-alpha04

تحديد الاعتماديات

لإضافة اعتمادية على Ink، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

أنيق

dependencies {
  
    implementation "androidx.ink:ink-authoring:1.1.0-alpha04"
    implementation "androidx.ink:ink-authoring-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-nativeloader:1.1.0-alpha04"
    implementation "androidx.ink:ink-rendering:1.1.0-alpha04"
    implementation "androidx.ink:ink-storage:1.1.0-alpha04"
    implementation "androidx.ink:ink-strokes:1.1.0-alpha04"
    
}

Kotlin

dependencies {


    implementation("androidx.ink:ink-authoring:1.1.0-alpha04")
    implementation("androidx.ink:ink-authoring-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-nativeloader:1.1.0-alpha04")
    implementation("androidx.ink:ink-rendering:1.1.0-alpha04")
    implementation("androidx.ink:ink-storage:1.1.0-alpha04")
    implementation("androidx.ink:ink-strokes:1.1.0-alpha04")
}

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على الـ مشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

لمزيد من المعلومات، يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل.

الإصدار 1.1 من Ink

الإصدار ‎1.1.0-alpha04

‫17 يونيو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha04. يتضمّن الإصدار ‎1.1.0-alpha04 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم إصلاح مشاكل دقة النقطة العائمة التي تؤدي إلى ظهور عناصر مرئية في الخطوط النهائية، ما يؤثر في أجهزة معيّنة بعد ترقيات نظام التشغيل

  • تمت إضافة واجهة برمجة تطبيقات KMP-common لوحدة التخزين (الانتقال من ByteArray وإليه بدلاً من Java InputStream/OutputStream)

  • تمت إضافة السمة BrushBehavior.developerComment للاحتفاظ ببيانات التعريف التي توضّح تصميم مجموعة فرشاة مخصّصة. يهدف ذلك إلى دعم واجهة مستخدم "مصمّم الفرشاة".

  • تم إصلاح خطأ في عمليات التحقّق من اتّساق سلاسل المحادثات في CanvasInProgressStrokesRenderHelperV33.

  • تم إصلاح بعض الأخطاء في معالجة الحقول الاختيارية لـ MotionEvent (مثل الإمالة والضغط).

  • تم تحسين مستندات واجهة برمجة تطبيقات الفرشاة المخصّصة.

  • تمت إضافة أنواع BrushPaint.ColorFunction جديدة.

الإصدار ‎1.1.0-alpha03

‫19 مايو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha03. يتضمّن الإصدار ‎1.1.0-alpha03 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم إتاحة واجهة برمجة التطبيقات لتخصيص فرشاة Ink آليًا (I8e2e1)
  • تم تقسيم BrushPaint.TextureLayer إلى فئات فرعية أكثر تحديدًا (I8848a)

الإصدار ‎1.1.0-alpha02

‫22 أبريل 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha02. يتضمّن الإصدار ‎1.1.0-alpha02 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم عرض عملية تحميل زائدة لـ BrushFamily.decode تحدّد الحد الأقصى لتوافق الإصدار (I1c7bc)
  • تم نقل واجهة برمجة التطبيقات لتسلسل BrushFamily من مرحلة التجربة (Idd16e)

إصلاح الأخطاء

  • تم إصلاح مشكلة الوميض عند استخدام InProgressStrokesView.maskPath على أجهزة معيّنة (I1c7bc وb/496920044)

الإصدار ‎1.1.0-alpha01

‫11 مارس 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha01. يتضمّن الإصدار ‎1.1.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • تم إصلاح مجموعة متنوعة من الأخطاء الصغيرة

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة InProgressShape.isCanceled، وتم إصلاح مشاكل التزامن في وحدة التأليف. (Ibfd32 وb/474385518 وb/470695777)
  • تم عرض إصدار بدون وسيطات من CanvasStrokeRenderer.create وInProgressStroke.updateShape على Java (Id80a1 وb/457715938)

إصلاح الأخطاء

  • تم إصلاح خطأ يؤدي إلى حدوث أعطال في InProgressStrokesView بعد فصلها عن النافذة وإعادة ربطها بها للإصدارات من واجهة برمجة التطبيقات 29 إلى 32، وتم السماح لعمليات Vec بأخذ MutableVec نفسها كإدخال وإخراج، وتم دمج إعدادات Proguard في ملف واحد. (Ia4da0)
  • تمت زيادة الاعتماد على graphics-core إلى 1.0.4 (Ibfa18)

الإصدار 1.0

الإصدار 1.0.0

‫17 ديسمبر 2025

تم طرح androidx.ink:ink-*:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.

إصلاح الأخطاء

  • تمت زيادة الاعتماد على graphics-core إلى 1.0.4 (Ibfa18)

الإصدار ‎1.0.0-rc01

‫3 ديسمبر 2025

تم طرح androidx.ink:ink-*:1.0.0-rc01. يتضمّن الإصدار ‎1.0.0-rc01 هذه التعديلات.

إصلاح الأخطاء

  • تم تعديل إصدار الاعتمادية. (Iecd04)

الإصدار ‎1.0.0-beta02

‫19 نوفمبر 2025

تم طرح androidx.ink:ink-*:1.0.0-beta02. يتضمّن الإصدار ‎1.0.0-beta02 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • واجهات برمجة تطبيقات تجريبية للأشكال ذات وقت الاستجابة المنخفض، وإصلاحات متنوعة للأخطاء (Ib8d2f)

إصلاح الأخطاء

  • تم تحسين دقة النقطة العائمة في تسلسل StrokeInputBatch، ما أدى إلى إصلاح مشكلة الانحراف في القيم الناتجة عن عمليات التشفير وفك التشفير المتكررة
  • تم تحسين عملية تنظيف بيانات الإدخال في النظام.
  • تم إصلاح إمكانية استخدام زخرفة الفرشاة في العنصر الإنشائي InProgressStrokes

الإصدار ‎1.0.0-beta01

‫22 أكتوبر 2025

تم طرح androidx.ink:ink-*:1.0.0-beta01. يتضمّن الإصدار ‎1.0.0-beta01 هذه التعديلات.

إصلاح الأخطاء

  • تم إصلاح الأخطاء استعدادًا لإصدار beta01 (I9900e)
  • تم تقليل عناصر العرض في الخطوط بسبب كثرة بيانات الإدخال التي تم وضع نماذج لها والمتقاربة جدًا من بعضها البعض.
  • تم إصلاح عطل نادر في وضع نماذج بيانات الإدخال.

الإصدار ‎1.0.0-alpha07

‫8 أكتوبر 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha07. يتضمّن الإصدار ‎1.0.0-alpha07 هذه التعديلات.

الميزات الجديدة

  • المَعلمة SelfOverlap لـ StockBrushes highlighter وemojiHighlighter، التي تحل محل rendererFactory في InProgressStrokesView
  • تم تحسين عملية تنعيم بيانات إدخال الخطوط، ما يؤدي إلى إزالة ضوضاء قياس الجهاز ولكن يعكس بيانات إدخال المستخدم بدقة أكبر من عملية تنعيم بيانات إدخال الخطوط السابقة
  • تم تحسين الاتّساق مع واجهات برمجة تطبيقات Android/Jetpack الأخرى لوحدات الزوايا (الدرجات مقابل الراديان) وعمليات التحويل (الإمالة مقابل القص) والمزيد

التغييرات في واجهة برمجة التطبيقات

  • تم تغيير واجهة برمجة التطبيقات المتعلقة بالزوايا لاستخدام الدرجات وتضمين الوحدة في الأسماء، وتم توضيح الوحدات في أدوات تحويل الزوايا، وتمت إضافة الدعم لكل من الدرجات والراديان، وتم تغيير واجهة برمجة التطبيقات StockBrushes لأخذ إصدار الفرشاة الجاهزة كمعلَمة دالة المصنع وعرض عنصر التحكّم في سلوك التداخل الذاتي لفرش التمييز، وتمت إعادة تسمية MutableAffineTransform.populateFromTranslate إلى populateFromTranslation، وتمت إزالة InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab وb/436656418)
  • تمت إعادة تسمية القص إلى الإمالة، وتم توضيح بعض المستندات، وتمت إزالة CanvasStrokeRenderer.strokeModifiedRegionOutsetPx، وتمت إضافة InProgressStroke.changesWithTime (Ia5e70 وb/436656418)

إصلاح الأخطاء

  • تم تحسين وضع نماذج بيانات الإدخال لجعل الخطوط تعكس بيانات الإدخال بدقة أكبر. (I93097)

الإصدار ‎1.0.0-alpha06

‫13 أغسطس 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha06. يتضمّن الإصدار ‎1.0.0-alpha06 هذه التعديلات.

الميزات الجديدة

  • فرشاة التمييز بالرموز التعبيرية الجاهزة: يمكنك تمييز أجزاء من مستند بأي رمز تعبيري تختاره، لإضافة لمسة ممتعة والمساعدة في الحفاظ على التنظيم.
  • واجهات برمجة تطبيقات مساعدة إضافية للأشكال الأساسية في وحدة الهندسة
  • تم تحسين توافق الأجهزة والأداء

التغييرات في واجهة برمجة التطبيقات

  • تم تبسيط واجهة برمجة التطبيقات لـ InProgressStrokesView، وتم الانتهاء من واجهات برمجة تطبيقات الهندسة، وفرشاة التمييز بالرموز التعبيرية، وتمت إزالة دوال المصنع من MutableParallelogram لصالح طرق التعبئة، وتمت إضافة الدعم للبيانات الأولية لسلوكيات الفرشاة العشوائية. (I38280)

إصلاح الأخطاء

  • تم إصلاح مشكلة في الأداء ومشكلة في اتّساق الألوان الرطبة والجافة. (Ifcd1d)

الإصدار ‎1.0.0-alpha05

‫18 يونيو 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha05. يتضمّن الإصدار ‎1.0.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • وحدات قابلية التشغيل التفاعلي مع Compose لوحدات التأليف والفرشاة والهندسة

التغييرات في واجهة برمجة التطبيقات

  • واجهات برمجة تطبيقات ووحدات جديدة لقابلية التشغيل التفاعلي مع Compose، وتنظيف واجهة برمجة التطبيقات (I0e464)
  • تمت إزالة الطريقتَين InProgressStroke.enqueueInputs/updateShape اللتَين كانتا تعرضان kotlin.Result، ويجب أن يستخدم العملاء بدلاً منهما، على سبيل المثال، enqueueInputsOrThrow أو enqueueInputsOrIgnore. تمت إعادة تسمية InProgressStroke.getNeedsUpdate إلى isUpdateNeeded. تعرض الآن InProgressStroke.populateOutlinePosition مَعلمة الإخراج الخاصة بها للسماح بتسلسل الطلبات، بما يتوافق مع الطرق الأخرى في Ink. تم نقل واجهة TextureBitmapStore من وحدة العرض إلى وحدة الفرشاة. تم ضبط BoxAccumulator.populateFrom لأخذ Box غير قابل للتغيير وقابل للقيم الخالية بدلاً من BoxAccumulator قابل للتغيير، لتوضيح ما يتم تغييره، ويجب أن يغيّر المتصلون boxAccumulator.add(other) إلى boxAccumulator.add(other.box). تمت إزالة BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor، ويجب استخدام setAndroidColor في Brush.Builder بعد الإنشاء بدلاً منهما. (Ia7155)
  • أصبحت السمة InProgressStrokesView.textureBitmapStore، التي كانت تجريبية سابقًا، خاصة الآن. لا تزال هناك أدوات وصول عامة لهذه السمة. (I1d706)

إصلاح الأخطاء

  • تم تحسين الأداء للفرش المخصّصة التي تحتوي على العديد من الجسيمات.

الإصدار ‎1.0.0-alpha04

‫9 أبريل 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha04. يتضمّن الإصدار ‎1.0.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • تمت إضافة واجهات برمجة تطبيقات تجريبية جديدة لكائنات BrushFamily المخصّصة، ما يتيح استخدام فرش جديدة مثل "القلم الرصاص" و"مؤشر الليزر". تسمح واجهة برمجة التطبيقات بتحميل الفرش المحدّدة في هذا النموذج الأولي. (I8809a)

الإصدار ‎1.0.0-alpha03

‫12 فبراير 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha03. يتضمّن الإصدار ‎1.0.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • توفير مساحة على القرص والشبكة: تسلسل StrokeInputBatch، ما يؤدي إلى توفير العديد من أسطر الرموز، وتكون الكائنات الناتجة جزءًا صغيرًا جدًا من حجم الخطوط المخزّنة تقليديًا. (Ie898d)
  • اختيار باستخدام أداة التحديد: فرشاة خط متقطّع لرسم خط الاختيار، ودالة لتحويل خط الاختيار إلى PartitionedMesh لطلبات الهندسة (Ia38a0)

الإصدار ‎1.0.0-alpha02

‫11 ديسمبر 2024

تم طرح androidx.ink:ink-*:1.0.0-alpha02. يتضمّن الإصدار ‎1.0.0-alpha02 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم إصلاح مجموعة متنوعة من الأخطاء. (I05dd8)

مساهمة خارجية

  • تم إيقاف BuildCompat.isAtLeastV نهائيًا. يجب أن يتحقّق المتصلون من `SDK_INT` مقابل 35 مباشرةً بدلاً من ذلك. (I294d1)

الإصدار ‎1.0.0-alpha01

‫2 أكتوبر 2024

تم طرح androidx.ink:ink-*:1.0.0-alpha01. يتضمّن الإصدار ‎1.0.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • مكتبة نمطية وقابلة للإعداد لتسهيل إنشاء خطوط حبر جميلة وعرضها ومعالجتها، والتي تم تأليفها في تطبيقك

التغييرات في واجهة برمجة التطبيقات

وحدات جديدة لمساعدة المطوّرين في إنشاء تجارب كتابة بالحبر غنية:

  • التأليف: يمكنك استخدام InProgressStrokesView لعرض الخطوط في الوقت الفعلي بأداء عالٍ ووقت استجابة منخفض عند تلقّي بيانات الإدخال.
  • العرض: يمكنك استخدام CanvasStrokeRenderer وViewStrokeRenderer لرسم خطوط الحبر النهائية كجزء من واجهة مستخدم التطبيق.
  • الخطوط: أنواع البيانات الأساسية المستخدَمة لميزات الكتابة بالحبر
  • الفرشاة: مواصفات قابلة للإعداد لكيفية ظهور الخطوط وتصرفها استجابةً لبيانات إدخال المستخدم
  • الهندسة: عمليات هندسية مثل التقاطع والتغطية لتشغيل أدوات مثل الاختيار والمحو