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

  
Standalone Composable and View based Viewfinder for Camera"

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

العناصر الإصدار المستقر إصدار محتمل الإصدار التجريبي الإصدار الأولي
viewfinder-compose 1.6.0 - - ‎1.7.0-alpha01
viewfinder-core 1.6.0 - - ‎1.7.0-alpha01
viewfinder-view 1.6.0 - - ‎1.7.0-alpha01
تم آخر تعديل على هذه المكتبة في: 25 مارس 2026

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

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

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

رائع

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

}

Kotlin

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


}

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

الملاحظات

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

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

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

الإصدار 1.7

الإصدار ‎1.7.0-alpha01

11 مارس 2026

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

الإصدار 1.6

الإصدار 1.6.0

25 مارس 2026

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

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

  • تم عرض ImplementationMode التلقائي لعدسة الكاميرا من خلال واجهة برمجة التطبيقات العامة الجديدة ViewfinderDefaults.implementationMode. ويتم الآن استخدام هذا الإعداد تلقائيًا لكلٍّ من ViewfinderView وViewfinder composable. (Ic3f52)

الإصدار ‎1.6.0-rc01

‫25 فبراير 2026

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

الإصدار ‎1.6.0-beta02

‫11 فبراير 2026

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

الإصدار ‎1.6.0-beta01

‫28 يناير 2026

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

الإصدار ‎1.6.0-alpha02

‫17 ديسمبر 2025

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

الإصدار ‎1.6.0-alpha01

‫22 أكتوبر 2025

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

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

  • تم عرض ImplementationMode التلقائي لعدسة الكاميرا من خلال واجهة برمجة التطبيقات العامة الجديدة ViewfinderDefaults.implementationMode. ويتم الآن استخدام هذا الإعداد تلقائيًا لكلٍّ من ViewfinderView وViewfinder composable. (Ic3f52)

الإصدار 1.5

الإصدار 1.5.3

‫28 يناير 2026

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

الإصدار 1.5.2

‫4 ديسمبر 2025

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

الإصدار 1.5.1

‫08 أكتوبر 2025

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

الإصدار 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:

هذا هو أول إصدار مستقر من مكتبة Camera Viewfinder، ما يوفّر واجهات برمجة تطبيقات قوية وسهلة الاستخدام تستند إلى 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: تتيح الآن واجهة برمجة التطبيقات Viewfinder من Compose استخدام ContentScale وAlignment للتحكّم الدقيق في طريقة عرض بث الكاميرا داخل الحاوية، ما يعكس سلوك composable العادي androidx.compose.foundation.Image.
  • إدارة مراحل النشاط في مساحة العرض: يتم الآن إبقاء ViewfinderSurfaceSession نشطة أثناء تغييرات الإعدادات وأحداث مراحل النشاط على واجهة برمجة التطبيقات 29 والإصدارات الأحدث. تم تصميم هذا التغيير للحدّ من الإطارات التي يتم إسقاطها وتوفير تجربة مستخدم أكثر سلاسة.
  • الإعدادات التلقائية لوضع التنفيذ: يتم الآن ضبط Viewfinder تلقائيًا على ImplementationMode ذكي يختار تلقائيًا أفضل تنفيذ أساسي. ويعطي الأولوية لـ SurfaceView عالي الأداء (وضع EXTERNAL) ويعود بسلاسة إلى TextureView الأكثر توافقًا (وضع EMBEDDED) على مستويات واجهة برمجة التطبيقات القديمة أو الأجهزة التي تواجه مشاكل معروفة في التوافق. لا يزال بإمكان المطوّرين إلغاء هذا السلوك للتحكّم الكامل.

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

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

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

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

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

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

  • تتضمّن TransformationInfo الآن قيمًا تلقائية لجميع الوسيطات. سيسمح ذلك بإنشاء عدسات الكاميرا بدون أي TransformationInfo، والتي سيتم ضبطها تلقائيًا على دوران المصدر بمقدار 0، وبدون نسخ مطابق للمصدر، وبدون مستطيل اقتصاص. (I2b1b2)
  • تتلقّى الآن عدسة الكاميرا Composable لامدا في النهاية لتلقّي جلسة مساحة عرض، على غرار AndroidExternalSurface. تستخدم اللامدا المقدَّمة ViewfinderInitScope كجهاز استقبال، ما يسمح بتثبيت معاودة اتصال لتلقّي جلسات مساحة عرض جديدة. تطلق جلسات مساحة العرض هذه تلقائيًا الموارد التي تحتفظ بها عدسة الكاميرا عندما تصبح خارج النطاق. (Ib2b0d)
  • تمت إزالة ViewfinderSurfaceRequest.Builder.populateFromCharacteristics الآن وتم استبدالها بمجموعة مكافئة من واجهات برمجة التطبيقات الثابتة التي يمكن استخدامها لإنشاء TransformationInfo التي ستنتج التحويل نفسه الذي تنتجه populateFromCharacteristics. تمت إضافة هذه الطرق الثابتة إلى فئة Camera2TransformationInfo. (Idc6af)
  • لم يعُد ViewfinderSurfaceRequest يتضمّن واجهات برمجة تطبيقات غير متزامنة لاسترداد مساحة العرض. وهي الآن نوع بيانات غير قابل للتغيير. تم نقل واجهات برمجة التطبيقات لاسترداد مساحة العرض إلى عدسة الكاميرا. (I30127)
  • تمت إعادة تسمية CameraViewfinder إلى ViewfinderView ليتوافق الاسم مع اسم عدسة الكاميرا composable وللإشارة إلى إمكانية استخدامها مع أكثر من مجرد مصادر الكاميرا. (Id9e6b)
  • تم نقل الفئات من viewfinder-view إلى الحزمة الفرعية androidx.camera.viewfinder.view من الحزمة androidx.camera.viewfinder. (I6cb44)
  • تمت إضافة واجهات برمجة تطبيقات جديدة إلى عدسة الكاميرا المستندة إلى View تسمح بضبط دوران المصدر ونسخه المطابق ومستطيل الاقتصاص. فئة TransformationInfo هذه هي الفئة نفسها التي تستخدمها عدسة الكاميرا المستندة إلى Compose. (I907c3)
  • تستخدم الآن عدسة الكاميرا المستندة إلى View واجهات برمجة تطبيقات ViewfinderSurfaceRequest الجديدة التي لم تعُد تتعامل داخليًا مع استجابة مساحة العرض. بدلاً من عرض 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 ليتم إعادة استخدامه مع Compose (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. توفّر هذه المكتبة composable‏ CameraXViewfinder، وهي عدسة كاميرا متوافقة مع Compose تُكيّف SurfaceRequest من CameraX مع Compose، على غرار طريقة عمل PreviewView مع طرق العرض.