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

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

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

อาร์ติแฟกต์ รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
ช่องมองภาพ-จัดองค์ประกอบ 1.5.0 - - 1.4.0-alpha13
viewfinder-core 1.5.0 - - 1.4.0-alpha13
มุมมองช่องมองภาพ 1.5.0 - - 1.4.0-alpha13
ไลบรารีนี้ได้รับการอัปเดตล่าสุดเมื่อวันที่ 10 กันยายน 2025

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

หากต้องการเพิ่มทรัพยากร Dependency ใน camera-viewfinder คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

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

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

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

รุ่น 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

นี่คือรุ่นที่มีความเสถียรแรกของไลบรารีช่องมองภาพของกล้อง ซึ่งมี API ที่อิงตาม View และ Compose ที่มีประสิทธิภาพ ตระหนักถึงวงจร และใช้งานง่าย คอมโพเนนต์เหล่านี้ออกแบบมาเพื่อใช้เป็นช่องมองภาพของกล้องและสามารถผสานรวมกับ Camera2 ได้โดยตรง

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

  • การย้ายที่เก็บข้อมูล: เราได้ย้ายที่เก็บข้อมูลของ Viewfinder ไปยังกลุ่มไลบรารีของตัวเองเพื่อปรับปรุงความสามารถในการแยกส่วน นักพัฒนาแอปที่เคยใช้การอ้างอิง androidx.camera:camera-viewfinder* ควรย้ายข้อมูลไปยัง androidx.camera.viewfinder:viewfinder-*
  • การปรับปรุงและทำให้ API เสถียร: เราได้ปรับปรุงพื้นผิว API สำหรับรุ่นเสถียรนี้ ซึ่งรวมถึงการเปลี่ยนชื่อ CameraViewfinder เป็น ViewfinderView เพื่อให้สะท้อนถึงความสามารถรอบด้านได้ดียิ่งขึ้น การจัดระเบียบแพ็กเกจใหม่เพื่อให้ชัดเจน และการทำให้ ViewfinderSurfaceRequest เป็นประเภทข้อมูลที่ไม่เปลี่ยนแปลงเพื่อการจัดการสถานะที่คาดการณ์ได้มากขึ้น
  • การอัปเดต Compose API: ตอนนี้ Compose Viewfinder API รองรับ ContentScale และ Alignment เพื่อให้ควบคุมได้อย่างละเอียดว่าจะแสดงสตรีมกล้องภายในคอนเทนเนอร์อย่างไร ซึ่งจะจำลองลักษณะการทำงานของ androidx.compose.foundation.Image ที่ใช้ร่วมกันได้มาตรฐาน
  • การจัดการวงจรของ Surface: ViewfinderSurfaceSession จะยังคงใช้งานได้เมื่อมีการเปลี่ยนแปลงการกำหนดค่าและเหตุการณ์วงจรใน API 29 ขึ้นไป การเปลี่ยนแปลงนี้ออกแบบมาเพื่อลดเฟรมที่หลุดและมอบประสบการณ์การใช้งานที่ราบรื่นยิ่งขึ้น
  • ค่าเริ่มต้นของโหมดการติดตั้งใช้งาน: ตอนนี้ Viewfinder จะเป็นค่าเริ่มต้นของ ImplementationMode อัจฉริยะที่เลือกการติดตั้งใช้งานพื้นฐานที่ดีที่สุดโดยอัตโนมัติ โดยจะให้ความสำคัญกับ SurfaceView ที่มีประสิทธิภาพสูง (โหมด EXTERNAL) และจะเปลี่ยนไปใช้ TextureView ที่เข้ากันได้มากกว่า (โหมด EMBEDDED) อย่างราบรื่นใน API ระดับที่เก่ากว่าหรืออุปกรณ์ที่ทราบว่ามีปัญหาด้านความเข้ากันได้ อย่างไรก็ตาม คุณยังคงลบล้างลักษณะการทำงานนี้ได้เพื่อให้ผู้พัฒนาควบคุมได้อย่างเต็มที่

การแก้ไขข้อบกพร่อง

  • ตอนนี้ Viewfinder ที่ประกอบได้ทำงานอย่างถูกต้องภายใน Pager ของ Compose และกับ movableContentOf() เพื่อให้มั่นใจว่าระบบจะรีเซ็ตและจัดการพื้นผิวอย่างถูกต้องในสถานการณ์ UI ที่ซับซ้อน (I0d9be, I79432)
  • แก้ไขปัญหาใน Android 10 และ 11 ที่SurfaceViewซึ่งอิงตาม Viewfinder อาจดูยืดออกเมื่อใช้การเปลี่ยนรูป (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 (เพื่อความเข้ากันได้ใน 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 ใหม่ได้ เซสชันของพื้นผิวเหล่านี้จะปล่อยทรัพยากรที่ 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การตั้งค่า Config ด้วย (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