الرسومات

  
استفد من مرافق الرسومات عبر إصدارات متعددة لنظام Android الأساسي

يسرد هذا الجدول جميع العناصر في مجموعة androidx.graphics.

العناصر الإصدار المستقر إصدار مرشح الإصدار التجريبي الإصدار الأولي
نواة الرسومات - - - 1.0.0-alpha05
مسار الرسومات - - الإصدار 1.0.0-الإصدار التجريبي 01 -
أشكال الرسومات - - - 1.0.0-alpha03
تم إجراء آخر تعديل لهذه المكتبة في 29 تشرين الثاني (نوفمبر) 2023.

تعريف التبعيات

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

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

رائع

dependencies {
    implementation "androidx.graphics:graphics-core:1.0.0-alpha05"
    implementation "androidx.graphics:graphics-path:1.0.0-beta01"
    implementation "androidx.graphics:graphics-shapes:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.graphics:graphics-core:1.0.0-alpha05")
    implementation("androidx.graphics:graphics-path:1.0.0-beta01")
    implementation("androidx.graphics:graphics-shapes:1.0.0-alpha03")
}

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

ملاحظات

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

إنشاء عدد جديد

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

لا تتوفّر ملاحظات إصدار لهذا العنصر.

أشكال الرسومات الإصدار 1.0

الإصدار 1.0.0-alpha03

7 حزيران (يونيو) 2023

تم إصدار "androidx.graphics:graphics-shapes:1.0.0-alpha03". يحتوي الإصدار 1.0.0-alpha03 على هذه الالتزامات.

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

  • تمت إضافة دالة RoundedPolygon.rectangle() جديدة (I78e7e، b/280322189)
  • أصبحت الآن دوال النجمة والدائرة بدون أحرف كبيرة تستدعيها من خلال الكائن المصاحب لـ RoundedPolygon: على سبيل المثال، RoundedPolygon.star(...)(I14735)

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

  • تم إصلاح خطأ التجانس (Ibf894)
  • إصلاح الخطأ الذي حدث عندما كان شكلا البداية والنهاية متطابقين. وزِّع المساحة المتاحة على جانب القطع بشكل أفضل، واستخدم أولاً المساحة المتاحة للتقريب، ثم للتجانس إذا كانت هناك مساحة متبقية. (Ibd320، b/277936300)

الإصدار 1.0.0-alpha02

19 نيسان (أبريل) 2023

تم إصدار "androidx.graphics:graphics-shapes:1.0.0-alpha02". يحتوي الإصدار 1.0.0-alpha02 على هذه الالتزامات.

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

  • تم دمج الفئة الفائقة للمضلّع مع فئتها الفرعية، RoundedPolygon؛ وأصبحت جميع المضلّعات الآن [اختياريًا] مضلّعات مستديرة.
  • تأخذ دالة "النجمة" (التي لا تزال تعرض RoundedPolygon، كما في السابق) قيمة innerRadius، بدلاً من المَعلمة innerRadiusRatio السابقة. وهذا في نفس الوحدات مثل معلمة radius الحالية، مما يجعل الأمور أكثر بساطةً وأكثر اتساقًا. تمت أيضًا إعادة تسمية المَعلمة numOuterVertices لتصبح numVerticesPerRadius لتوضيح أنّ العدد نفسه ينطبق على نصفَي القطر الداخلي والخارجي.
  • تم توثيق CornerRounding.radius سابقًا ليكون متناسبًا مع حجم المضلّع، ولكنها كانت (ولا بد أن تكون) قيمة مطلقة، وليست نسبية. تم تعديل المستندات وتم إصلاح التعليق التوضيحي الذي يحدّها من الحد الأقصى للقيمة وهو 1.0.

الإصدار 1.0.0-alpha01

5 نيسان (أبريل) 2023

Graphics-Shapes هي مكتبة جديدة تتيح إنشاء وعرض الأشكال المضلعة المستديرة بسهولة، بالإضافة إلى التحويل البسيط والتلقائي (الرسوم المتحركة) بين الأشكال المختلفة.

تم إصدار "androidx.graphics:graphics-shapes:1.0.0-alpha01". تم طرح هذا الإصدار من فرع داخلي.

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

  • استخدم واجهة برمجة التطبيقات Polygon لإنشاء مضلعات عادية ومضلعة مع العدد المطلوب من الرؤوس.
  • يمكنك استخدام المعلمات CornerRounding الاختيارية لتحديد نصف قطر التقريب ومعلمات التجانس للزوايا، ما ينتج عنه أشكال مضلّعة بزوايا مستديرة.
  • يمكنك استخدام واجهة برمجة التطبيقات Morph(Polygon, Polygon) الجديدة لحساب "شكل" يمكن ضبط مستوى تقدُّمه من 0 إلى 1 لتحريك شكلَي البداية والنهاية. يمكنك تحريك هذا التقدم بمرور الوقت ورسم النتيجة على كل إطار لإنشاء صورة متحركة سلسة بين هذه الأشكال الدائرية الجديدة.

الإصدار 1.0 من مسار الرسومات

الإصدار 1.0.0-beta01

29 تشرين الثاني (نوفمبر) 2023

تم إصدار "androidx.graphics:graphics-path:1.0.0-beta01". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.

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

  • تمّت إزالة الاستخدامات التجريبية لواجهة برمجة تطبيقات isAtLeastU() (Ie9117، b/289269026).

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

  • إصلاحات وتحسينات متنوعة في الأداء، بما في ذلك كيفية تعامل المكتبة مع الكتب المخروطية

الإصدار 1.0.0-alpha02

7 حزيران (يونيو) 2023

تم إصدار "androidx.graphics:graphics-path:1.0.0-alpha02". تم تطوير هذا الإصدار في فرع داخلي.

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

  • تم إصلاح مشكلة التحقّق من إصدار النظام الأساسي الداخلي، ما تسبّب في حدوث مشاكل عند تشغيل معاينات الإصدار 14 من نظام التشغيل Android (قد يتعذّر التحقّق من الإصدار، إلا أنّ آلية تنفيذ الإجراءات على الإصدارات السابقة لا تعمل بشكل صحيح على نظام التشغيل Android 14 على وجه التحديد).

الإصدار 1.0.0-alpha01

22 آذار (مارس) 2023

تم إصدار "androidx.graphics:graphics-path:1.0.0-alpha01". يحتوي الإصدار 1.0.0-alpha01 على هذه الالتزامات.

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

  • تسمح هذه المكتبة الجديدة بإجراء طلبات بحث عن بيانات المسار عبر واجهة برمجة التطبيقات PathIterator الجديدة. وباستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصلين التكرار خلال جميع أجزاء عنصر المسار لتحديد العملية والبيانات لهذه الأجزاء.
  • تستخدم المكتبة واجهات برمجة تطبيقات مشابهة تم تقديمها في معاينة نظام التشغيل Android 14، إلا أنّ إصدار AndroidX من واجهة برمجة التطبيقات يعمل أيضًا على الإصدارات السابقة من واجهة برمجة التطبيقات 21.

الإصدار 1.0 من الرسومات الأساسية

الإصدار 1.0.0-alpha05

6 أيلول (سبتمبر) 2023

تم إصدار "androidx.graphics:graphics-core:1.0.0-alpha05". يحتوي الإصدار 1.0.0-alpha05 على هذه الالتزامات.

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

  • تم طرح GLFrameBufferRenderer API. ويوفّر ذلك مزيجًا من تبعيات OpenGL وإعدادات سلسلة التبديل وتنسيقات وحدات البكسل وإعدادات SurfaceControl. (Ic775b)

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

  • تمت إضافة معلمات العرض والارتفاع إلى العديد من واجهات برمجة التطبيقات لرد الاتصال إلى أبعاد الأنابيب من SurfaceHolder#Callbacks. (I7f9fc)
  • تمت إضافة واجهة برمجة تطبيقات واضحة لمحو كل من الطبقات الأمامية والطبقات المتعددة التخزين المؤقت. (Ic1f95)
  • تمت إضافة إمكانية ضبط نوع المخزن المؤقت الأساسي لسلاسل التبديل المستخدمة في GLFrontBufferedRenderer. (I07a13)
  • تمت إضافة سمات Kotlin للرموز في GLFrameBufferRenderer، والتعليقات التوضيحية IntRange للحدّ الأقصى من إدخالات المخزن المؤقت، والتعليقات التوضيحية HardwareBufferFormart وHardwareBufferUsage للسمة setFormat/setUsage على التوالي. (Ief89e)
  • تم تعديل واجهة برمجة التطبيقات setBuffer على معاملات SurfaceControl لتوفير حواجز إطلاق. (Ice1bb)
  • تمت إضافة واجهات برمجة التطبيقات SurfaceControlCompat.Transaction API لضبط مساحة البيانات وضبط نطاق السطوع الموسَّع. (Ic378d)

الإصدار 1.0.0-alpha04

7 حزيران (يونيو) 2023

تم إصدار "androidx.graphics:graphics-core:1.0.0-alpha04". يحتوي الإصدار 1.0.0-alpha04 على هذه الالتزامات.

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

  • تم تقديم CanvasFrontBufferedRenderer لاعتماد الرسومات ذات الاستجابة السريعة التي تستفيد من واجهة برمجة التطبيقات android.graphics.Canvas إلى جانب تنفيذ OpenGL الحالي.

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

  • تم تحديث واجهة برمجة التطبيقات SurfaceControlCompat.Transaction#setBuffer للسماح لمثيلات HardwareBuffer القابلة للقيم الفارغة بمحاكاة واجهة برمجة التطبيقات للنظام الأساسي المقابلة (I173d7).
  • أعِد تسمية الطرق التي تشير إلى العرض "التخزين المؤقت المزدوج" إلى "متعدد التخزين المؤقت" بدلاً من ذلك، لأنّ سلسلة تبديل الجزء الخلفي قد تحتوي على أكثر من نوعَين مخزنَين مؤقتَين. (I830d7)
  • يمكنك إنشاء واجهة برمجة تطبيقات CanvasFrontBufferedRenderer لتفعيل 3ps للاستفادة من نظام عرض أمامي مخزَّن مؤقتًا باستخدام واجهة برمجة تطبيقات Canvas. (Ibfc29)

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

  • تم إصلاح مشكلة عدم عرض GLFrontBufferedRenderer للمحتوى بعد استئناف النشاط المقابل.
  • تم إصلاح المشكلة التي كانت تتسبب في محو المحتوى المخزن المؤقت قبل الأوان.
  • تم إصلاح المشكلة التي كانت لن تتم إزالة SurfaceHolder.Callbacks بعد إصدار واجهات برمجة التطبيقات للرسومات ذات وقت الاستجابة السريع.

الإصدار 1.0.0-alpha03

22 آذار (مارس) 2023

تم إصدار "androidx.graphics:graphics-core:1.0.0-alpha03". يحتوي الإصدار 1.0.0-alpha03 على هذه الالتزامات.

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

  • تم تعديل تنفيذ استدعاء GLFrontBufferedRenderer لتوفير عنصر BufferInfo يحتوي على عرض/ارتفاع المخزن المؤقت بالإضافة إلى معرّف المخزن المؤقت للإطارات الذي يمكن استخدامه لإعادة استهداف الوجهة الأصلية بعد العرض على مخزن مؤقت متوسط للخدش. (I7fe20)
  • تم دمج عملية الإنشاء في SyncFence إلى طريقة المصنع الثابتة في SyncFenceCompat.
  • تمت إزالة طريقة التوافق العامة لـ eglDupNativeFenceFDANDROID لصالح طريقة المصنع SyncFenceCompat لإنشاء SyncFence. ويضمن ذلك أن تتلقّى جميع مساحات عرض واجهة برمجة التطبيقات طريقة التنفيذ الصحيحة لواجهة برمجة التطبيقات SyncFence بغض النظر عن مستوى واجهة برمجة التطبيقات. (I849bb)
  • تمت إضافة مستندات حول FrameBufferRenderer وSyncStrategy.
    • تم نقل FrameBufferRenderer + FrameBuffer + FrameBufferPool إلى حزمة androidx.graphics.opengl.
    • تم نقل SyncStrategy إلى حزمة واحدة (androidx.graphics.opengl).
    • تم تعديل مستندَين (RenderCallback#onDraw).
    • مستندات معدّلة لـ RenderCallback#obtainFrameBuffer توضح أنّ منفّذ واجهة برمجة التطبيقات هو المسؤول عن طلب FrameBuffer.close
    • تم تعديل onDrawComplete للإشارة إلى أنّ المستهلكين مسؤولون عن إرسال المحتوى لعرضه.
    • تم نقل SyncFence واجهات/فئات التوافق إلى حزمة androidx.hardware للتوافق مع إطار العمل.
    • تمت إعادة تسمية واجهة برمجة التطبيقات SyncFence لتصبح SyncFenceV19، وجعلها خاصة لدمج الاستخدامات إلى SyncFenceCompat التي تستفيد كلما أمكن من واجهة برمجة التطبيقات SyncFence لإطار العمل. (I5149c)
  • تمت إضافة طريقتين GLFrontBufferedRenderer#cancel وGLFrontBufferedRenderer#execute. ويكون الإجراء الأول مفيدًا في سيناريوهات رفض راحة اليد حيث يجب إلغاء العرض لدى المخزن المؤقت الأمامي وإخفاء المخزن المؤقت الأمامي. ويفيد التصنيف الأخير في سيناريوهات معالجة العناصر في سلسلة GL بدون الحاجة إلى جدولة عرض. (If0b7f)
  • إضافة واجهة برمجة تطبيقات للعرض مباشرةً إلى الطبقة ذات التخزين المؤقت المزدوج. ويساعد ذلك في إعادة عرض مشهد بعد السيرة الذاتية بالإضافة إلى إتاحة الفرصة للمستهلكين ليحددوا بشكل انتقائي الوقت المناسب للاستفادة بشكل ديناميكي من العرض المُخزَّن مؤقتًا استنادًا إلى المشهد المطلوب عرضه. (Ied56c)
  • تمت إضافة واجهة برمجة تطبيقات جديدة إلى SurfaceControlCompat.Builder لإتاحة ضبط العنصر الرئيسي SurfaceControl من مثيل SurfaceControl آخر بالإضافة إلى الآلية الحالية من SurfaceView. (I1d1b6)
  • المزيد من قابلية القيم الفارغة للدوال المخفية التي تم إيقافها (Ibf7b0)
  • تمت إضافة ثابت الإضافة EGL_ANDROID_get_native_client_buffer للاستعلام عما إذا كان جهاز Android يتيح استيراد مثيلات HardwareBuffer إلى عناصر EGLClientBuffer التي يمكن استخدامها كمثيل EGLImage. (Iad767)
  • إضافة تعليق @JvmDefaultWithCompatibility التوضيحي (I8f206)

الإصدار 1.0.0-alpha02

تشرين الثاني (نوفمبر) 2022

تم إصدار "androidx.graphics:graphics-core:1.0.0-alpha02". يحتوي الإصدار 1.0.0-alpha02 على هذه الالتزامات.

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

  • تم إصلاح تعليق RequiresApi التوضيحي غير متوفر لـ addTransactionCommitListener الذي تم تقديمه في Android S (I0a035).
  • تم تعديل استدعاءات المخزن المؤقت onDraw<Front/Double> لتوفير مصفوفة تحويل يمكن للمستهلكين تمريرها إلى وحدات تظليل الرأس بالإضافة إلى عرض/ارتفاع المخزن المؤقت الحالي. يتحمل المستهلكون مسؤولية استخدام هذه المَعلمات لإجراء تدوير مسبق لرمز عرض OpenGL بشكل صحيح. (I82f9e)

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

  • تم تحسين وقت استجابة الرسومات من خلال تدوير الموارد الاحتياطية قبل إصدار معاملة SurfaceControl.
  • تم إصلاح المشكلة التي كانت تعرض سجلات الأخطاء فيها الخطأ 300d (EGL_BAD_SURFACE).
  • تم إصلاح المشكلة التي كانت تمثل عدم صلاحية GLFrontBufferedRenderer بعد استئناف النشاط المقابل الذي تم استخدامه فيها.
  • مزيد من الدعم لأجهزة المحاكاة وأجهزة ChromeOS
  • تم إصلاح المشكلة التي تتمثل في احتمال اختفاء الطبقة الأمامية المخزنة مؤقتًا قبل الأوان.

الإصدار 1.0.0-alpha01

24 تشرين الأول (أكتوبر) 2022

تم إصدار "androidx.graphics:graphics-core:1.0.0-alpha01". يحتوي الإصدار 1.0.0-alpha01 على هذه الالتزامات.

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

  • الإصدار الأولي من مكتبة AndroidX الأساسية للرسومات. ويشمل ذلك واجهات برمجة التطبيقات التي تتوافق مع حالات الاستخدام ذات وقت الاستجابة السريع، مثل إدخال قلم الشاشة. ويقدِّم هذا أيضًا بعض واجهات برمجة التطبيقات المساعدة لاستخدام OpenGL.

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

  • يتم تقديم السمة GLFrontBufferedRenderer للمساعدة في العرض الأمامي والمتعدّد التخزين المؤقت، وذلك من أجل تحقيق وقت استجابة سريع ومخرجات عرض عالية الجودة.
  • توفّر واجهة برمجة التطبيقات GLRenderer للمساعدة في عرض OpenGL على العديد من موفّري أجهزة Surface، مثل SurfaceView وTextureView وغيرهما.