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

  
Standalone Composable and View based Viewfinder for Camera"

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

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

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

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

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

رائع

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

}

Kotlin

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


}

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

الملاحظات

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

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

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

الإصدار 1.5

الإصدار 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 نشطًا طوال دورات حياة إنشاء/إيقاف Surface عند استخدام 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 يتضمّن واجهات برمجة تطبيقات غير متزامنة لاسترداد مساحة العرض. أصبح الآن نوع بيانات غير قابل للتغيير. تم الآن نقل واجهات برمجة التطبيقات الخاصة باسترداد Surface إلى عدسة الكاميرا. (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 مع طرق العرض.