عدسة الكاميرا
يسرد هذا الجدول جميع العناصر في المجموعة androidx.camera-viewfinder.
| العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| viewfinder-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| viewfinder-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| عرض عدسة الكاميرا | 1.5.1 | - | - | 1.6.0-alpha01 |
تحديد الاعتماديات
لإضافة اعتمادية على camera-viewfinder، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.6
الإصدار 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القابل للإنشاء. (Ic3f52)
الإصدار 1.5
الإصدار 1.5.1
8 أكتوبر 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:
هذا هو الإصدار الثابت الأول من مكتبة "نافذة عرض الكاميرا"، وهو يوفّر واجهات برمجة تطبيقات قوية ومتوافقة مع مراحل النشاط وسهلة الاستخدام تستند إلى 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. يضمن هذا التغيير إمكانية إعادة ضبط العنصر القابل للإنشاء بنجاح من خلال تنفيذ معاودة الاتصالonResetالخاصة بـAndroidView، ما يتيح استخدام كل من عمليات التنفيذEMBEDDEDوEXTERNAL. (I0d9be) - تم إصلاح مشكلة في نظام التشغيل Android 10 أو 11 حيث يمكن أن يظهر
EXTERNALViewfinderممدودًا أو غير صحيح بسبب تطبيق عمليات التحويل (مثل تغيير الحجم أو الترجمة) في وقت مبكر جدًا. ينتظر النظام الآن إلى أن يتم إنشاء 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-viewandroidx.camera:camera-viewfinder-compose->androidx.camera.viewfinder:viewfinder-composeandroidx.camera:camera-viewfinder-core->androidx.camera.viewfinder:viewfinder-core
لن تحتاج إلى إجراء أي تغييرات على الرموز البرمجية لإجراء عملية النقل هذه. لن تتلقّى إحداثيات Maven القديمة الخاصة بأداة "الباحث عن العُقد" أي تحديثات.
بالإضافة إلى ذلك، إذا كنت تستخدم Compose مع CameraX، تتوفّر الآن مكتبة جديدة في الإصدار الأوّلي تركّز على Compose: androidx.camera:camera-compose. يوفر ذلك العنصر CameraXViewfinder القابل للإنشاء، وهو أداة Viewfinder متوافقة مع Compose وتتكيّف مع SurfaceRequest في CameraX، على غرار طريقة عمل PreviewView مع طرق العرض.