عدسة الكاميرا
يسرد هذا الجدول جميع العناصر في المجموعة 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 |
تحديد الاعتماديات
لإضافة اعتمادية على 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 هذه التعديلات.
إصلاح الأخطاء
- نقل القيمة التلقائية
minSdk
من الإصدار 21 من واجهة برمجة التطبيقات إلى الإصدار 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
الإصدار 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
مع طرق العرض.