حبر

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

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

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

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

رائع

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

Kotlin

dependencies {


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

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

الملاحظات

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

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

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

الإصدار 1.1 من Ink

الإصدار ‎1.1.0-alpha03

‫19 مايو 2026

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

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

  • إتاحة واجهة برمجة التطبيقات لتخصيص فرشاة الحبر آليًا (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 للفرشاتين highlighter وemojiHighlighter في StockBrushes، والتي تحل محل 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 لرسم خطوط الحبر المكتملة كجزء من واجهة مستخدم التطبيق.
  • الخطوط: أنواع البيانات الأساسية المستخدَمة لميزات الحبر
  • الفرشاة: مواصفات قابلة للإعداد لكيفية ظهور الخطوط وتفاعلها استجابةً لبيانات أدخلها المستخدم
  • الهندسة: عمليات هندسية، مثل التقاطع والتغطية، لتشغيل أدوات، مثل التحديد والمحو