ช่องมองภาพของกล้อง
ตารางนี้แสดงอาร์ติแฟกต์ทั้งหมดในกลุ่ม 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 |
การประกาศทรัพยากร 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 ภายในอีกต่อไป ตอนนี้ APIrequestSurfaceSession()
จะแสดงผล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