منظره یاب دوربین

منظره‌یاب مستقل و قابل ترکیب و مبتنی بر نما برای دوربین

این جدول تمام مصنوعات موجود در گروه androidx.camera-viewfinder را فهرست می‌کند.

مصنوع انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
منظره یاب-نوشتن ۱.۵.۱ - - ۱.۶.۰-آلفا۰۱
منظره‌یاب-هسته ۱.۵.۱ - - ۱.۶.۰-آلفا۰۱
منظره یاب-نمای ۱.۵.۱ - - ۱.۶.۰-آلفا۰۱
این کتابخانه آخرین بار در تاریخ ۲۲ اکتبر ۲۰۲۵ به‌روزرسانی شده است.

اعلام وابستگی‌ها

برای افزودن وابستگی به camera-viewfinder، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

شیار

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"

}

کاتلین

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 کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه ۱.۶

نسخه ۱.۶.۰-آلفا۰۱

۲۲ اکتبر ۲۰۲۵

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 شامل این کامیت‌ها است.

تغییرات API

  • نمایاب پیش‌فرض ImplementationMode از طریق API عمومی جدید ViewfinderDefaults.implementationMode نمایش داده شد. اکنون این به عنوان پیش‌فرض برای ViewfinderView و Viewfinder composable استفاده می‌شود. ( Ic3f52 )

نسخه ۱.۵

نسخه ۱.۵.۱

۸ اکتبر ۲۰۲۵

androidx.camera.viewfinder:viewfinder-compose:1.5.1 ، androidx.camera.viewfinder:viewfinder-core:1.5.1 و androidx.camera.viewfinder:viewfinder-view:1.5.1 منتشر شدند. نسخه ۱.۵.۱ شامل این کامیت‌ها است.

نسخه ۱.۵.۰

۱۰ سپتامبر ۲۰۲۵

androidx.camera.viewfinder:viewfinder-compose:1.5.0 ، androidx.camera.viewfinder:viewfinder-core:1.5.0 و androidx.camera.viewfinder:viewfinder-view:1.5.0 منتشر شدند. نسخه ۱.۵.۰ شامل این کامیت‌ها است.

تغییرات مهم از زمان ۱.۴.۰:

این اولین نسخه پایدار از کتابخانه Camera Viewfinder است که APIهای مبتنی بر View و Compose قوی، آگاه از چرخه حیات و با کاربرد آسان را ارائه می‌دهد. این اجزا به گونه‌ای طراحی شده‌اند که به عنوان منظره‌یاب دوربین عمل کنند و می‌توانند مستقیماً با Camera2 ادغام شوند.

این نسخه همچنین پایه و اساس مصنوع جدید androidx.camera:camera-compose را ایجاد می‌کند که CameraXViewfinder معرفی می‌کند، یک منظره‌یاب به اصطلاح Compose که به طور یکپارچه با CameraX SurfaceRequest ها ادغام می‌شود، مشابه نحوه‌ی عملکرد PreviewView برای طرح‌بندی‌های مبتنی بر View. برخی از مهمترین تغییرات عبارتند از:

  • جابجایی مصنوعات: برای بهبود ماژولاریتی، مصنوعات Viewfinder به گروه کتابخانه‌ای خود منتقل شده‌اند. توسعه‌دهندگانی که قبلاً از وابستگی‌های androidx.camera:camera-viewfinder* استفاده می‌کردند، باید به androidx.camera.viewfinder:viewfinder-* مهاجرت کنند.
  • تثبیت و اصلاحات API: سطح API برای این نسخه پایدار بهبود یافته است. این شامل تغییر نام CameraViewfinder به ViewfinderView برای انعکاس بهتر تطبیق‌پذیری آن، سازماندهی مجدد بسته‌ها برای وضوح بیشتر و تبدیل ViewfinderSurfaceRequest به یک نوع داده تغییرناپذیر برای مدیریت حالت قابل پیش‌بینی‌تر می‌شود.
  • به‌روزرسانی‌های API مربوط به نوشتن: API Viewfinder نوشته‌شده اکنون ContentScale و Alignment برای کنترل دقیق نحوه نمایش جریان دوربین در کانتینر خود پشتیبانی می‌کند و رفتار استاندارد androidx.compose.foundation.Image composable را منعکس می‌کند.
  • مدیریت چرخه حیات Surface: ViewfinderSurfaceSession اکنون در طول تغییرات پیکربندی و رویدادهای چرخه حیات در API 29+ فعال می‌ماند. این تغییر برای کاهش فریم‌های از دست رفته و ارائه یک تجربه کاربری روان‌تر طراحی شده است.
  • پیش‌فرض‌های حالت پیاده‌سازی: Viewfinder اکنون به طور پیش‌فرض روی یک ImplementationMode هوشمند قرار دارد که به طور خودکار بهترین پیاده‌سازی زیربنایی را انتخاب می‌کند. این حالت SurfaceView با عملکرد بالا (حالت EXTERNAL ) را در اولویت قرار می‌دهد و در سطوح API قدیمی‌تر یا دستگاه‌هایی با مشکلات سازگاری شناخته شده، به طور مناسب به TextureView سازگارتر (حالت EMBEDDED ) برمی‌گردد. این رفتار هنوز هم می‌تواند برای کنترل کامل توسعه‌دهنده لغو شود.

رفع اشکالات

  • Viewfinder ترکیبی اکنون به درستی در Pager Compose و با movableContentOf() کار می‌کند و تضمین می‌کند که سطح به درستی تنظیم مجدد شده و در سناریوهای پیچیده رابط کاربری مدیریت می‌شود. ( I0d9be ، I79432 )
  • مشکلی که در اندروید ۱۰ و ۱۱ وجود داشت و باعث می‌شد Viewfinder مبتنی بر SurfaceView هنگام اعمال تبدیل‌ها کشیده به نظر برسد، برطرف شد. ( Icc77c )

نسخه ۱.۵.۰-rc01

۱۳ آگوست ۲۰۲۵

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 شامل این کامیت‌ها است.

رفع اشکالات

نسخه ۱.۵.۰-بتا۰۳

۱۶ ژوئیه ۲۰۲۵

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-based) اکنون به طور هوشمندانه بین EXTERNAL (برای عملکرد) و EMBEDDED (برای سازگاری با APIهای قدیمی‌تر/دستگاه‌های عجیب و غریب) یکی را انتخاب می‌کند. این رفتار هنوز هم می‌تواند با تنظیمات صریح در ViewfinderSurfaceRequest یا ویژگی‌های XML (در View-based API) لغو شود. ( Iecd3a )
  • مدیریت جلسه سطح (Surface Session) بهبود یافته است، به این صورت که ViewfinderSurfaceSession در طول چرخه‌های ایجاد/تخریب سطح، هنگام استفاده از TextureView یا SurfaceView در API 29+، فعال می‌ماند. ( I112d9 )
  • اکنون Viewfinder تضمین می‌کند که Surfaces در زمان مناسب، تنها زمانی که دیگر توسط session مورد استفاده قرار نمی‌گیرند، منتشر شوند، به جای اینکه همیشه زمانی که Composable از دسترس خارج می‌شود، منتشر شوند. برای EXTERNAL ( SurfaceView ) این رفتار در حال حاضر فقط در API 29+ در دسترس است. برای EMBEDDED ( TextureView )، این رفتار در تمام سطوح API وجود دارد. ( I9a03f )
  • Viewfinder اکنون به درستی جایگزینی سطح را در سناریوهایی مانند زمانی که یک منظره‌یاب EXTERNAL در سطح API 28 یا پایین‌تر از صفحه خارج می‌شود یا اگر یک Viewfinder (با هر ImplementationMode ) بخشی از moveableContentOf() باشد، مدیریت می‌کند. ( I79432 )
  • نمایاب ترکیبی (Composable Viewfinder ) اکنون به درستی با Pager (Pager) صفحه‌ی Compose کار می‌کند. این تغییر تضمین می‌کند که با پیاده‌سازی فراخوانی onReset از AndroidView ، که از هر دو پیاده‌سازی EMBEDDED و EXTERNAL پشتیبانی می‌کند، می‌توان Composable را با موفقیت بازنشانی کرد. ( I0d9be )
  • مشکلی را در اندروید ۱۰/۱۱ برطرف می‌کند که در آن نمایاب خارجی ( EXTERNAL Viewfinder به دلیل اعمال زودهنگام عملیات تبدیل (مانند مقیاس‌بندی یا ترجمه) ممکن بود کشیده یا نادرست به نظر برسد. اکنون سیستم قبل از اعمال این تبدیلات در مرحله طرح‌بندی، منتظر ایجاد Surface می‌ماند تا خروجی صحیح تضمین شود. ( Icc77c )

نسخه ۱.۵.۰-بتا۰۲

۴ ژوئن ۲۰۲۵

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 شامل این کامیت‌ها است.

نسخه ۱.۵.۰-بتا۰۱

۷ مه ۲۰۲۵

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 استفاده شوند. اگر به دنبال یک منظره‌یاب یا قابل ترکیب برای استفاده با CameraX هستید، به PreviewView و CameraXViewfinder مراجعه کنید.

ویژگی‌های جدید

  • اکنون می‌توان ContentScale و Alignment در نمایاب مبتنی بر compose برای مقیاس‌بندی و قرار دادن سطح نمایش داده شده در ظرف آن استفاده کرد، مشابه نحوه رفتار androidx.compose.foundation.Image . ( Ibcea3 )

تغییرات API

  • TransformationInfo اکنون برای همه آرگومان‌ها مقادیر پیش‌فرض دارد. این امر به Viewfinders اجازه می‌دهد بدون هیچ TransformationInfo ایجاد شوند، که به طور پیش‌فرض روی چرخش منبع ۰، بدون آینه‌سازی منبع و بدون برش صحیح تنظیم شده است. ( I2b1b2 )
  • Composable Viewfinder اکنون یک لامبدا انتهایی برای دریافت یک جلسه Surface می‌گیرد، مشابه AndroidExternalSurface . لامبدا ارائه شده از ViewfinderInitScope به عنوان گیرنده استفاده می‌کند که امکان نصب یک callback برای دریافت جلسات Surface جدید را فراهم می‌کند. این جلسات surface به طور خودکار منابع نگهداری شده توسط Viewfinder را هنگام خارج شدن از محدوده، آزاد می‌کنند. ( Ib2b0d )
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics اکنون حذف شده و با مجموعه‌ای معادل از APIهای استاتیک جایگزین شده است که می‌توانند برای تولید TransformationInfo استفاده شوند که همان تبدیل populateFromCharacteristics را تولید می‌کند. این متدهای استاتیک به کلاس Camera2TransformationInfo اضافه شده‌اند. ( Idc6af )
  • ViewfinderSurfaceRequest دیگر شامل APIهای ناهمگام برای بازیابی سطح نیست. اکنون یک نوع داده تغییرناپذیر است. APIهای بازیابی سطح اکنون به منظره‌یاب منتقل شده‌اند. ( I30127 )
  • CameraViewfinder به ViewfinderView تغییر نام داده است تا نامگذاری آن با نامگذاری Viewfinder composable همسو باشد و نشان دهد که می‌توان از آن علاوه بر منابع دوربین، با منابع دیگری نیز استفاده کرد. ( Id9e6b )
  • کلاس‌های viewfinder-view از بسته androidx.camera.viewfinder.view به زیربسته androidx.camera.viewfinder منتقل شده‌اند. ( I6cb44 )
  • APIهای جدیدی به Viewfinder مبتنی بر نما اضافه شده‌اند که امکان تنظیم چرخش منبع، قرینه‌سازی و برش مستطیل را فراهم می‌کنند. این کلاس TransformationInfo همان کلاسی است که توسط Viewfinder مبتنی بر ترکیب استفاده می‌شود. ( I907c3 )
  • Viewfinder مبتنی بر نما اکنون از APIهای جدید ViewfinderSurfaceRequest استفاده می‌کند که دیگر به صورت داخلی پاسخ Surface را مدیریت نمی‌کنند. به جای بازگرداندن ListenableFuture<Surface> ، APIهای requestSurfaceSession() اکنون ListenableFuture<ViewfinderSurfaceSession> را برمی‌گردانند که یک کلاس AutoCloseable برمی‌گرداند که هنگام بسته شدن، مانند فراخوانی API قدیمی ViewfinderSurfaceRequest.markSurfaceSafeToRelease() رفتار می‌کند. این امر تفکیک واضح‌تری از مسئولیت‌ها بین درخواست سطحی و پاسخ سطحی را فراهم می‌کند. ( I19041 )

نسخه ۱.۴

نسخه ۱.۴.۰-آلفا۱۳

۲۶ فوریه ۲۰۲۵

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 شامل این کامیت‌ها است.

نسخه ۱.۴.۰-آلفا۱۲

۱۵ ژانویه ۲۰۲۵

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 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • برای استفاده از API مربوط به اندروید ۱۵، compileSdk به نسخه ۳۵ ارتقا داده شد. برنامه‌هایی که از کتابخانه‌های CameraX استفاده می‌کنند نیز باید تنظیمات پیکربندی compileSdk خود را ارتقا دهند. ( Ic80cd )
  • این کتابخانه اکنون از حاشیه‌نویسی‌های nullness از نوع JSpecify استفاده می‌کند که از نوع استفاده می‌کنند. توسعه‌دهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند: -Xjspecify-annotations=strict (این پیش‌فرض است که از نسخه ۲.۱.۰ کامپایلر کاتلین شروع می‌شود). ( I7bcd7 ، b/326456246 )

نسخه ۱.۴.۰-آلفا۱۱

۱۱ دسامبر ۲۰۲۴

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 شامل این کامیت‌ها است.

تغییرات API

  • کلاس‌های viewfinder-core به بسته‌هایی منتقل شده‌اند که با کتابخانه‌ای که به آن تعلق دارند سازگار هستند. ( I431c6 )
  • CameraViewfinder.ScaleType به viewfinder-core منتقل شده است تا بتوان آن را با compose ( I87ef1 ) دوباره استفاده کرد.
  • کلاس‌های منسوخ‌شده‌ی CameraViewfinder حذف شده‌اند. لطفاً از APIهای جدید که عملکرد معادل را ارائه می‌دهند استفاده کنید. ( I6e59a )

نسخه ۱.۴.۰-آلفا۱۰

۳۰ اکتبر ۲۰۲۴

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 شامل این کامیت‌ها است.

نسخه ۱.۴.۰-آلفا۰۹

۲ اکتبر ۲۰۲۴

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 شامل این کامیت‌ها است.

نسخه ۱.۴.۰-آلفا۰۸

۴ سپتامبر ۲۰۲۴

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 شامل این کامیت‌ها است.

ویژگی‌های جدید

با به‌روزرسانی به نسخه ۱.۴.۰-alpha08، قطعه مربوط به منظره‌یاب CameraX به گروه کتابخانه‌ی مخصوص به خود منتقل شده است. این تغییر برای بهبود ماژولاریتی و قابلیت نگهداری کتابخانه‌ی 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

برای انجام این انتقال نیازی به تغییر کد نیست. مختصات قدیمی Viewfinder دیگر به‌روزرسانی نخواهند شد.

علاوه بر این، اگر از Compose با CameraX استفاده می‌کنید، یک کتابخانه جدید Compose-first اکنون به صورت آلفا در دسترس است: androidx.camera:camera-compose . این کتابخانه، CameraXViewfinder composable را فراهم می‌کند که یک Viewfinder با اصطلاح compose است که SurfaceRequest دوربین X را با Compose تطبیق می‌دهد، مشابه نحوه عملکرد PreviewView برای نماها.