ช่องมองภาพของกล้อง

  
ช่องมองภาพแบบ Composable และ View สำหรับกล้อง"

ตารางนี้แสดงอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.camera-viewfinder

อาร์ติแฟกต์ รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
ช่องมองภาพ-จัดองค์ประกอบ - - 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

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน camera-viewfinder คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ 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 ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา

รุ่น 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 (เพื่อความเข้ากันได้ใน API รุ่นเก่า/อุปกรณ์ที่ทำงานผิดปกติ) อย่างไรก็ตาม คุณยังคงลบล้างลักษณะการทำงานนี้ได้ด้วยการตั้งค่าที่ชัดเจนใน ViewfinderSurfaceRequest หรือแอตทริบิวต์ XML (ใน API ที่อิงตามมุมมอง) (Iecd3a)
  • ปรับปรุงการจัดการเซสชัน Surface โดยอนุญาตให้ ViewfinderSurfaceSession ทำงานต่อไปได้ตลอดวงจรการสร้าง/ทำลาย Surface เมื่อใช้ TextureView หรือ SurfaceView ใน API 29 ขึ้นไป (I112d9)
  • ตอนนี้ Viewfinder จะช่วยให้มั่นใจได้ว่า Surface จะได้รับการเผยแพร่ในเวลาที่เหมาะสม เมื่อเซสชันไม่ได้ใช้งานแล้วเท่านั้น ไม่ใช่เผยแพร่ทุกครั้งที่มีการทิ้ง Composable สำหรับ EXTERNAL (SurfaceView) ปัจจุบันลักษณะการทำงานนี้ใช้ได้เฉพาะใน API 29 ขึ้นไป สำหรับ EMBEDDED (TextureView) ลักษณะการทำงานนี้จะอยู่ใน API ทุกระดับ (I9a03f)
  • ตอนนี้ Viewfinder จัดการการแทนที่พื้นผิวได้อย่างถูกต้องในสถานการณ์ต่างๆ เช่น เมื่อEXTERNALช่องมองภาพใน API ระดับ 28 หรือต่ำกว่าเลื่อนออกจากหน้าจอ หรือหาก Viewfinder (มี ImplementationMode ใดก็ตาม) เป็นส่วนหนึ่งของ moveableContentOf() (I79432)
  • ตอนนี้ Composable Viewfinder ทำงานร่วมกับ Pager ของ Compose ได้อย่างถูกต้องแล้ว การเปลี่ยนแปลงนี้ช่วยให้มั่นใจได้ว่าสามารถรีเซ็ต Composable ได้สำเร็จโดยการใช้onReset Callback ของ 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 มีการเปลี่ยนแปลงเหล่านี้

  • นี่คือเวอร์ชันเบต้าอย่างเป็นทางการครั้งแรกของช่องมองภาพที่อิงตามมุมมองและอิงตาม Compose ซึ่งมีความยืดหยุ่นเพียงพอที่จะใช้กับ Camera2 ได้ หากกำลังมองหา View หรือ Composable ที่จะใช้กับ CameraX โปรดดู PreviewView และ CameraXViewfinder

ฟีเจอร์ใหม่

  • ตอนนี้คุณใช้ ContentScale และ Alignment ในช่องมองภาพที่อิงตามการเขียนได้แล้วเพื่อปรับขนาดและวางพื้นผิวที่แสดงภายในคอนเทนเนอร์ ซึ่งคล้ายกับลักษณะการทำงานของ androidx.compose.foundation.Image (Ibcea3)

การเปลี่ยนแปลง API

  • TransformationInfo มีค่าเริ่มต้นสำหรับอาร์กิวเมนต์ทั้งหมดแล้ว ซึ่งจะช่วยให้สร้าง Viewfinder ได้โดยไม่มี TransformationInfo ซึ่งจะมีการหมุนแหล่งที่มาเป็น 0 โดยค่าเริ่มต้น ไม่มีการมิเรอร์แหล่งที่มา และไม่มีสี่เหลี่ยมผืนผ้าครอบตัด (I2b1b2)
  • ตอนนี้ Composable Viewfinder จะใช้ Lambda ต่อท้ายเพื่อรับเซสชัน Surface ซึ่งคล้ายกับ AndroidExternalSurface Lambda ที่ระบุใช้ ViewfinderInitScope เป็นตัวรับ ซึ่งช่วยให้ติดตั้งการเรียกกลับเพื่อรับเซสชัน Surface ใหม่ได้ เซสชันของ Surface เหล่านี้จะปล่อยทรัพยากรที่ Viewfinder ถือครองโดยอัตโนมัติเมื่ออยู่นอกขอบเขต (Ib2b0d)
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics ถูกนำออกแล้วและแทนที่ด้วยชุด API แบบคงที่ที่เทียบเท่ากัน ซึ่งสามารถใช้เพื่อสร้าง TransformationInfo ซึ่งจะสร้างการเปลี่ยนรูปแบบเดียวกันกับ populateFromCharacteristics ระบบจะเพิ่มเมธอดแบบคงที่เหล่านี้ลงในคลาส Camera2TransformationInfo (Idc6af)
  • ViewfinderSurfaceRequest ไม่มี API แบบไม่พร้อมกันสำหรับการดึงข้อมูลพื้นผิวอีกต่อไป ตอนนี้เป็นประเภทข้อมูลที่เปลี่ยนแปลงไม่ได้แล้ว ตอนนี้ระบบได้ย้าย API สำหรับดึงข้อมูล Surface ไปยังช่องมองภาพแล้ว (I30127)
  • เราได้เปลี่ยนชื่อ CameraViewfinder เป็น ViewfinderView เพื่อให้การตั้งชื่อสอดคล้องกับการตั้งชื่อของ Viewfinder ที่ใช้ร่วมกันได้ และเพื่อระบุว่าสามารถใช้กับแหล่งที่มาอื่นๆ นอกเหนือจากกล้องได้ (Id9e6b)
  • ย้ายคลาสจาก viewfinder-view ไปยังแพ็กเกจย่อย androidx.camera.viewfinder.view จากแพ็กเกจ androidx.camera.viewfinder แล้ว (I6cb44)
  • เราได้เพิ่ม API ใหม่ลงในช่องมองภาพที่อิงตามมุมมอง ซึ่งช่วยให้ตั้งค่าการหมุนแหล่งที่มา การมิเรอร์ และสี่เหลี่ยมผืนผ้าครอบตัดได้ TransformationInfo คลาสนี้เป็นคลาสเดียวกับที่ Viewfinder ที่อิงตาม Compose ใช้ (I907c3)
  • ตอนนี้ช่องมองภาพที่อิงตามมุมมองใช้ ViewfinderSurfaceRequest API ใหม่ซึ่งจะไม่จัดการการตอบกลับของ Surface ภายในอีกต่อไป ตอนนี้ API requestSurfaceSession() จะแสดงผล ListenableFuture<ViewfinderSurfaceSession> แทนที่จะแสดงผล ListenableFuture<Surface> ซึ่งจะแสดงผลคลาส AutoCloseable ที่เมื่อปิดแล้วจะทำงานในลักษณะเดียวกับการเรียก API เก่าของ 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 สำหรับการใช้ API ที่เกี่ยวข้องกับ Android 15 แอปที่ใช้ไลบรารี CameraX จะต้องอัปเกรดcompileSdkการตั้งค่าด้วย (Ic80cd)
  • ตอนนี้ไลบรารีนี้ใช้คำอธิบายประกอบเกี่ยวกับค่า Null ของ JSpecify ซึ่งเป็นแบบใช้ประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง -Xjspecify-annotations=strict (นี่คือค่าเริ่มต้นที่เริ่มต้นด้วยคอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (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 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • viewfinder-core ได้ย้ายไปอยู่ในแพ็กเกจที่สอดคล้องกับไลบรารีที่แพ็กเกจนั้นๆ สังกัดอยู่ (I431c6)
  • CameraViewfinder.ScaleType ได้ย้ายไปที่ viewfinder-core แล้วเพื่อให้ใช้ซ้ำกับ Compose ได้ (I87ef1)
  • ระบบจะนำชั้นเรียน CameraViewfinder ที่เลิกใช้งานแล้วออก โปรดใช้ API ใหม่ซึ่งมีฟังก์ชันการทำงานเทียบเท่า (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 ไปยังกลุ่มไลบรารีของตัวเอง การเปลี่ยนแปลงนี้จำเป็นต่อการปรับปรุงความสามารถในการแยกส่วนและความสามารถในการบำรุงรักษาของไลบรารี 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 ของ Viewfinder แบบเดิมจะไม่ได้รับการอัปเดตอีกต่อไป

นอกจากนี้ หากคุณใช้ Compose กับ CameraX ตอนนี้มีไลบรารีใหม่ที่ใช้ Compose เป็นอันดับแรกในเวอร์ชันอัลฟ่าแล้ว: androidx.camera:camera-compose ซึ่งจะให้ CameraXViewfinder ที่เป็น Viewfinder ที่เป็นสำนวนของ Compose ซึ่งปรับ SurfaceRequest ของ CameraX ให้เข้ากับ Compose ในลักษณะเดียวกับที่ PreviewView ทำงานกับ View