عدسة الكاميرا

  
Standalone Composable and View based Viewfinder for Camera"

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

العناصر الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
viewfinder-compose 1.5.0 - - 1.4.0-alpha13
viewfinder-core 1.5.0 - - 1.4.0-alpha13
عرض عدسة الكاميرا 1.5.0 - - 1.4.0-alpha13
تم إجراء آخر تعديل على هذه المكتبة في: 10 سبتمبر 2025

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

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

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

رائع

dependencies {
    // Use to implement camera viewfinders
    
    implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0"
    implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0"
    implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0"

}

Kotlin

dependencies {
    // Use to implement camera viewfinders
    implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0")
    implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0")
    implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0")


}

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

الملاحظات

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

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

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

الإصدار 1.5

الإصدار 1.5.0

‫10 سبتمبر 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.5.0 وandroidx.camera.viewfinder:viewfinder-core:1.5.0 وandroidx.camera.viewfinder:viewfinder-view:1.5.0. يتضمّن الإصدار 1.5.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.4.0:

هذا هو الإصدار الثابت الأول من مكتبة "نافذة عرض الكاميرا"، وهو يوفّر واجهات برمجة تطبيقات قوية ومتوافقة مع مراحل النشاط وسهلة الاستخدام تستند إلى View وCompose. تم تصميم هذه المكوّنات لتعمل كشاشة عرض الكاميرا ويمكن دمجها مباشرةً مع Camera2.

يضع هذا الإصدار أيضًا الأساس لعنصر androidx.camera:camera-compose الجديد، والذي يقدّم CameraXViewfinder، وهو أداة عرض متوافقة مع Compose تتكامل بسلاسة مع SurfaceRequest في CameraX، على غرار طريقة عمل PreviewView مع التصاميم المستندة إلى View. في ما يلي بعض أهم التغييرات:

  • نقل العناصر: لتحسين تصميم الوحدات، تم نقل عناصر "عدسة الكاميرا" إلى مجموعة مكتبة خاصة بها. على المطوّرين الذين كانوا يستخدمون التبعيات androidx.camera:camera-viewfinder* سابقًا نقل البيانات إلى androidx.camera.viewfinder:viewfinder-*.
  • تثبيت واجهة برمجة التطبيقات وتحسينها: تم تحسين مساحة واجهة برمجة التطبيقات لهذا الإصدار الثابت. ويشمل ذلك إعادة تسمية CameraViewfinder إلى ViewfinderView لتعكس تنوّع استخداماتها بشكل أفضل، وإعادة تنظيم الحِزم لتوضيحها، وتحويل ViewfinderSurfaceRequest إلى نوع بيانات غير قابل للتغيير من أجل إدارة الحالة بشكل أكثر قابلية للتوقّع.
  • تعديلات على Compose API: تتيح واجهة برمجة التطبيقات Viewfinder في Compose الآن استخدام ContentScale وAlignment للتحكّم بدقة في طريقة عرض بث الكاميرا داخل الحاوية، ما يعكس سلوك العنصر القابل للإنشاء androidx.compose.foundation.Image العادي.
  • إدارة مراحل نشاط Surface: يتم الآن إبقاء ViewfinderSurfaceSession نشطًا عند إجراء تغييرات في الإعدادات وأحداث مراحل النشاط على الإصدار 29 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. ويهدف هذا التغيير إلى تقليل عدد اللقطات التي تم إسقاطها وتوفير تجربة أكثر سلاسة للمستخدم.
  • الإعدادات التلقائية لوضع التنفيذ: يتم الآن ضبط Viewfinder تلقائيًا على ImplementationMode ذكي يختار تلقائيًا أفضل عملية تنفيذ أساسية. ويعطي هذا الخيار الأولوية للإصدار SurfaceView العالي الأداء (الوضع EXTERNAL)، ويستخدم الإصدار TextureView الأكثر توافقًا (الوضع EMBEDDED) على مستويات واجهة برمجة التطبيقات القديمة أو الأجهزة التي تتضمّن مشاكل معروفة في التوافق. سيظل بإمكان المطوّرين إلغاء هذا السلوك والتحكّم بشكل كامل.

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

  • يعمل العنصر القابل للإنشاء Viewfinder الآن بشكلٍ صحيح ضمن Pager في Compose ومع movableContentOf()، ما يضمن إعادة ضبط السطح وإدارته بشكلٍ سليم في سيناريوهات واجهة المستخدم المعقّدة. (I0d9be، I79432)
  • تم إصلاح مشكلة في نظامَي التشغيل Android 10 و11 حيث كان من الممكن أن يظهر Viewfinder المستند إلى SurfaceView بشكل ممدود عند تطبيق عمليات التحويل. (Icc77c)

الإصدار 1.5.0-rc01

‫13 أغسطس 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01 وandroidx.camera.viewfinder:viewfinder-core:1.5.0-rc01 وandroidx.camera.viewfinder:viewfinder-view:1.5.0-rc01. يتضمّن الإصدار 1.5.0-rc01 هذه التعديلات.

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

الإصدار 1.5.0-beta03

‫16 يوليو 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03 وandroidx.camera.viewfinder:viewfinder-core:1.5.0-beta03 وandroidx.camera.viewfinder:viewfinder-view:1.5.0-beta03. يتضمّن الإصدار 1.5.0-beta03 هذه التعديلات.

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

  • يختار ImplementationMode التلقائي لـ Viewfinder (لكلّ من Compose وView) الآن بذكاء بين EXTERNAL (لتحسين الأداء) وEMBEDDED (للتوافق مع واجهات برمجة التطبيقات القديمة/الأجهزة الغريبة). يمكن إلغاء هذا السلوك من خلال إعدادات صريحة في ViewfinderSurfaceRequest أو سمات XML (في واجهة برمجة التطبيقات المستندة إلى العرض). (Iecd3a)
  • تحسين إدارة جلسات Surface من خلال السماح بإبقاء ViewfinderSurfaceSession نشطًا طوال دورات حياة إنشاء/إيقاف مساحة العرض عند استخدام TextureView أو SurfaceView على الإصدار 29 من واجهة برمجة التطبيقات أو الإصدارات الأحدث (I112d9)
  • يضمن Viewfinder الآن إيقاف "اللوحات" في الوقت المناسب، أي عندما لا تستخدمها الجلسة، بدلاً من إيقافها دائمًا عند التخلص من العنصر القابل للإنشاء. بالنسبة إلى EXTERNAL (SurfaceView)، لا يتوفّر هذا السلوك حاليًا إلا على المستوى 29 من واجهة برمجة التطبيقات أو أعلى. أما بالنسبة إلى EMBEDDED (TextureView)، فيتوفّر هذا السلوك على جميع مستويات واجهة برمجة التطبيقات. (I9a03f)
  • تعمل السمة Viewfinder الآن بشكل صحيح على معالجة استبدال السطح في سيناريوهات مثل عندما يخرج EXTERNAL معين على مستوى واجهة برمجة التطبيقات 28 أو أقل من الشاشة أو إذا كان Viewfinder (مع أي ImplementationMode) جزءًا من moveableContentOf(). (I79432)
  • تعمل Viewfinder القابلة للإنشاء الآن بشكلٍ صحيح مع Pager في Compose. يضمن هذا التغيير إمكانية إعادة ضبط Composable بنجاح من خلال تنفيذ معاودة الاتصال onReset الخاصة بـ AndroidView، ما يتيح استخدام كل من EMBEDDED وEXTERNAL. (I0d9be)
  • تم إصلاح مشكلة في نظام التشغيل Android 10 أو 11 حيث يمكن أن يظهر EXTERNAL Viewfinder ممدودًا أو غير صحيح بسبب تطبيق عمليات التحويل (مثل تغيير الحجم أو الترجمة) في وقت مبكر جدًا. ينتظر النظام الآن إلى أن يتم إنشاء Surface قبل تطبيق عمليات التحويل هذه في مرحلة التنسيق، ما يضمن الحصول على الناتج الصحيح. (Icc77c)

الإصدار 1.5.0-beta02

‫4 يونيو 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02 وandroidx.camera.viewfinder:viewfinder-core:1.5.0-beta02 وandroidx.camera.viewfinder:viewfinder-view:1.5.0-beta02. يتضمّن الإصدار 1.5.0-beta02 هذه التعديلات.

الإصدار 1.5.0-beta01

‫7 مايو 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01 وandroidx.camera.viewfinder:viewfinder-core:1.5.0-beta01 وandroidx.camera.viewfinder:viewfinder-view:1.5.0-beta01. يتضمّن الإصدار 1.5.0-beta01 هذه التعديلات.

  • هذا هو أول إصدار تجريبي رسمي من محدّدات المنظر المستندة إلى العرض والمركّبة، وهي مرنة بما يكفي لاستخدامها مع Camera2. إذا كنت تبحث عن View أو عنصر قابل للإنشاء لاستخدامه مع CameraX، يمكنك الاطّلاع على PreviewView وCameraXViewfinder.

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

  • يمكن الآن استخدام ContentScale وAlignment في عدسة الكاميرا المستندة إلى Compose لتغيير حجم السطح المعروض ووضعه داخل الحاوية، على غرار طريقة عمل androidx.compose.foundation.Image. (Ibcea3)

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

  • يحتوي TransformationInfo الآن على قيم تلقائية لجميع الوسيطات. سيسمح ذلك بإنشاء أدوات Viewfinder بدون أي TransformationInfo، وسيتم ضبطها تلقائيًا على تدوير المصدر بمقدار 0، وبدون عكس المصدر، وبدون مستطيل اقتصاص. (I2b1b2)
  • تتلقّى أداة Composable Viewfinder الآن تعبير lambda لاحقًا لتلقّي جلسة Surface، على غرار AndroidExternalSurface. تستخدِم دالة lambda المقدَّمة ViewfinderInitScope كعنصر مستقبِل، ما يتيح تثبيت دالة ردّ الاتصال لتلقّي جلسات Surface جديدة. تؤدي جلسات العرض على السطح هذه إلى تحرير الموارد التي يحتفظ بها "منظار العرض" تلقائيًا عندما تخرج عن النطاق. (Ib2b0d)
  • تمت إزالة ViewfinderSurfaceRequest.Builder.populateFromCharacteristics الآن واستبدالها بمجموعة مكافئة من واجهات برمجة التطبيقات الثابتة التي يمكن استخدامها لإنشاء TransformationInfo، ما سيؤدي إلى إجراء عملية التحويل نفسها التي تجريها populateFromCharacteristics. تتم إضافة هذه الطرق الثابتة إلى الفئة Camera2TransformationInfo. (Idc6af)
  • لم يعُد ViewfinderSurfaceRequest يتضمّن واجهات برمجة تطبيقات غير متزامنة لاسترداد مساحة العرض. أصبح الآن نوع بيانات غير قابل للتغيير. تم الآن نقل واجهات برمجة التطبيقات الخاصة باسترداد "مساحة العرض" إلى "نافذة العرض". (I30127)
  • تمت إعادة تسمية CameraViewfinder إلى ViewfinderView ليتوافق الاسم مع اسم العنصر القابل للإنشاء Viewfinder، وللإشارة إلى أنّه يمكن استخدامه مع أكثر من مجرد مصادر الكاميرا. (Id9e6b)
  • تم نقل الفئات من viewfinder-view إلى الحزمة الفرعية androidx.camera.viewfinder.view من الحزمة androidx.camera.viewfinder. (I6cb44)
  • تمت إضافة واجهات برمجة تطبيقات جديدة إلى ميزة "نافذة العرض" المستندة إلى العرض، ما يتيح ضبط تدوير المصدر وعكسه ومستطيل الاقتصاص. فئة TransformationInfo هذه هي الفئة نفسها التي يستخدمها تطبيق "منظار البحث" المستند إلى Compose. (I907c3)
  • يستخدم تطبيق "منظار البحث" المستند إلى العرض الآن واجهات برمجة تطبيقات ViewfinderSurfaceRequest جديدة لم تعُد تعالج استجابة Surface داخليًا. بدلاً من عرض ListenableFuture<Surface>، تعرض واجهات برمجة التطبيقات requestSurfaceSession() الآن ListenableFuture<ViewfinderSurfaceSession> التي تعرض فئة AutoCloseable، وعند إغلاقها، تتصرف بالطريقة نفسها التي يتصرف بها استدعاء واجهة برمجة التطبيقات القديمة ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). ويوفّر ذلك فصلًا أوضح للمسؤوليات بين طلب السطح وردّ السطح. (I19041)

الإصدار 1.4

الإصدار 1.4.0-alpha13

‫26 فبراير 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13. يتضمّن الإصدار 1.4.0-alpha13 هذه التعديلات.

الإصدار 1.4.0-alpha12

‫15 يناير 2025

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12. يتضمّن الإصدار 1.4.0-alpha12 هذه التعديلات.

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

  • تمت ترقية compileSdk إلى 35 لاستخدام واجهة برمجة التطبيقات ذات الصلة بنظام التشغيل Android 15. يجب أيضًا على التطبيقات التي تستخدم مكتبات CameraX ترقية إعدادات compileSdk. (Ic80cd)
  • تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية من JSpecify، وهي تعليقات توضيحية خاصة باستخدام النوع. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح: -Xjspecify-annotations=strict (هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مترجم Kotlin البرمجي). (I7bcd7، b/326456246)

الإصدار 1.4.0-alpha11

‫11 ديسمبر 2024

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11. يتضمّن الإصدار 1.4.0-alpha11 هذه التعديلات.

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

  • تم نقل فئات viewfinder-core إلى حِزم تتوافق مع المكتبة التي تنتمي إليها. (I431c6)
  • تم نقل CameraViewfinder.ScaleType إلى viewfinder-core ليتم إعادة استخدامه مع ميزة "إنشاء" (I87ef1)
  • تتم إزالة صفوف CameraViewfinder التي تم إيقافها نهائيًا. يُرجى استخدام واجهات برمجة التطبيقات الجديدة التي توفّر وظائف مكافئة. (I6e59a)

الإصدار 1.4.0-alpha10

‫30 أكتوبر 2024

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10. يتضمّن الإصدار 1.4.0-alpha10 هذه التعديلات.

الإصدار 1.4.0-alpha09

‫2 أكتوبر 2024

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09. يتضمّن الإصدار 1.4.0-alpha09 هذه التعديلات.

الإصدار 1.4.0-alpha08

‫4 سبتمبر 2024

تم إصدار androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08 وandroidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08 وandroidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08. يتضمّن الإصدار 1.4.0-alpha08 هذه التعديلات.

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

مع التحديث إلى الإصدار 1.4.0-alpha08، تم نقل العنصر CameraX Viewfinder إلى مجموعة المكتبات الخاصة به. هذا التغيير ضروري لتحسين تصميم مكتبة CameraX وتسهيل صيانتها.

إذا كنت تعتمد سابقًا على androidx.camera:camera-viewfinder أو androidx.camera:camera-viewfinder-compose أو androidx.camera:camera-viewfinder-core، عليك نقل التبعيات إلى ما يلي:

  • androidx.camera:camera-viewfinder -> androidx.camera.viewfinder:viewfinder-view
  • androidx.camera:camera-viewfinder-compose -> androidx.camera.viewfinder:viewfinder-compose
  • androidx.camera:camera-viewfinder-core -> androidx.camera.viewfinder:viewfinder-core

لن تحتاج إلى إجراء أي تغييرات على الرموز البرمجية لإجراء عملية النقل هذه. لن تتلقّى إحداثيات Maven القديمة الخاصة بأداة "الباحث عن العُقد" أي تحديثات.

بالإضافة إلى ذلك، إذا كنت تستخدم Compose مع CameraX، تتوفّر الآن مكتبة جديدة تستند إلى Compose في الإصدار الأوّلي: androidx.camera:camera-compose. يوفر ذلك العنصر CameraXViewfinder القابل للإنشاء، وهو أداة Viewfinder متوافقة مع Compose وتتكيّف مع SurfaceRequest في CameraX، على غرار طريقة عمل PreviewView مع طرق العرض.