카메라 뷰파인더
이 표에는 androidx.camera-viewfinder
그룹의 모든 아티팩트가 나열됩니다.
아티팩트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
viewfinder-compose | - | - | 1.5.0-beta03 | 1.4.0-alpha13 |
viewfinder-core | - | - | 1.5.0-beta03 | 1.4.0-alpha13 |
viewfinder-view | - | - | 1.5.0-beta03 | 1.4.0-alpha13 |
종속 항목 선언
camera-viewfinder의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
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을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.5
버전 1.5.0-beta03
2025년 7월 16일
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에는 이러한 커밋이 포함되어 있습니다.
버그 수정
- 이제
Viewfinder
(Compose 및 뷰 기반 모두)의 기본ImplementationMode
가EXTERNAL
(성능용)와EMBEDDED
(이전 API/특이한 기기와의 호환성용) 중에서 지능적으로 선택합니다. 이 동작은ViewfinderSurfaceRequest
또는 XML 속성 (뷰 기반 API)의 명시적 설정으로 재정의할 수 있습니다. (Iecd3a) - API 29 이상에서 TextureView 또는 SurfaceView를 사용할 때 노출 영역 생성/삭제 수명 주기 전반에서
ViewfinderSurfaceSession
가 활성 상태로 유지되도록 하여 노출 영역 세션 관리 개선(I112d9) - 이제
Viewfinder
는 컴포저블이 삭제될 때 항상 해제하는 대신 세션에서 더 이상 사용하지 않을 때만 적절한 시간에 Surface가 해제되도록 합니다.EXTERNAL
(SurfaceView
)의 경우 이 동작은 현재 API 29 이상에서만 사용할 수 있습니다.EMBEDDED
(TextureView
)의 경우 이 동작은 모든 API 수준에 있습니다. (I9a03f) - 이제
Viewfinder
가 API 수준 28 이하에서EXTERNAL
뷰파인더가 화면 밖으로 이동하거나Viewfinder
(ImplementationMode
포함)가moveableContentOf()
의 일부인 경우와 같은 시나리오에서 표면 교체를 적절하게 처리합니다. (I79432) - 이제 컴포저블
Viewfinder
가 Compose의Pager
와 올바르게 작동합니다. 이 변경사항은AndroidView
의onReset
콜백을 구현하여 컴포저블을 성공적으로 재설정할 수 있도록 하며EMBEDDED
및EXTERNAL
구현을 모두 지원합니다. (I0d9be) - 변환 작업 (예: 크기 조절 또는 변환)이 너무 일찍 적용되어
EXTERNAL
Viewfinder
이 늘어나거나 잘못 표시될 수 있는 Android 10/11의 문제 수정 이제 시스템은 레이아웃 단계에서 이러한 변환을 적용하기 전에 Surface가 생성될 때까지 기다려 올바른 출력을 보장합니다. (Icc77c)
버전 1.5.0-beta02
2025년 6월 4일
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
2025년 5월 7일
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와 함께 사용할 수 있을 만큼 유연한 뷰 기반 및 Compose 기반 뷰파인더의 첫 번째 공식 베타 출시입니다. CameraX와 함께 사용할 뷰나 컴포저블을 찾고 있다면
PreviewView
및CameraXViewfinder
를 참고하세요.
새로운 기능
- 이제
ContentScale
와Alignment
를 Compose 기반 뷰파인더에서 사용하여androidx.compose.foundation.Image
의 작동 방식과 유사하게 표시된 화면을 컨테이너 내에서 확장하고 배치할 수 있습니다. (Ibcea3)
API 변경사항
- 이제
TransformationInfo
에 모든 인수의 기본값이 있습니다. 이렇게 하면TransformationInfo
없이 뷰파인더를 만들 수 있으며, 뷰파인더는 기본적으로 소스 회전 0, 소스 미러링 없음, 자르기 rect 없음으로 설정됩니다. (I2b1b2) - 이제 컴포저블 Viewfinder는
AndroidExternalSurface
와 마찬가지로 Surface 세션을 수신하는 후행 람다를 사용합니다. 제공된 람다는ViewfinderInitScope
를 리시버로 사용하므로 새 Surface 세션을 수신하는 콜백을 설치할 수 있습니다. 이러한 화면 세션은 범위를 벗어나면 뷰파인더에서 보유한 리소스를 자동으로 해제합니다. (Ib2b0d) - 이제
ViewfinderSurfaceRequest.Builder.populateFromCharacteristics
가 삭제되었으며populateFromCharacteristics
와 동일한 변환을 생성하는TransformationInfo
를 생성하는 데 사용할 수 있는 동등한 정적 API 집합으로 대체되었습니다. 이러한 정적 메서드는Camera2TransformationInfo
클래스에 추가됩니다. (Idc6af) ViewfinderSurfaceRequest
에는 더 이상 화면을 가져오는 비동기 API가 포함되지 않습니다. 이제 변경할 수 없는 데이터 유형입니다. Surface를 가져오는 API가 이제 뷰파인더로 이동되었습니다. (I30127)CameraViewfinder
의 이름이 뷰파인더 컴포저블의 이름과 일치하고 카메라 소스 외에도 사용할 수 있음을 나타내기 위해ViewfinderView
로 바뀌었습니다. (Id9e6b)viewfinder-view
의 클래스가androidx.camera.viewfinder
패키지에서androidx.camera.viewfinder.view
하위 패키지로 이동했습니다. (I6cb44)- 소스 회전, 미러링, 자르기 사각형을 설정할 수 있는 뷰 기반 뷰파인더에 새 API가 추가되었습니다. 이
TransformationInfo
클래스는 Compose 기반 Viewfinder에서 사용하는 클래스와 동일합니다. (I907c3) - 뷰 기반 뷰파인더는 이제 더 이상 내부적으로 Surface 응답을 처리하지 않는 새로운
ViewfinderSurfaceRequest
API를 사용합니다. 이제requestSurfaceSession()
API는ListenableFuture<Surface>
을 반환하는 대신ListenableFuture<ViewfinderSurfaceSession>
을 반환합니다.ListenableFuture<ViewfinderSurfaceSession>
은 닫을 때ViewfinderSurfaceRequest.markSurfaceSafeToRelease()
의 이전 API를 호출하는 것과 동일한 방식으로 작동하는AutoCloseable
클래스를 반환합니다. 이렇게 하면 표면 요청과 표면 응답 간의 책임이 더 명확하게 분리됩니다. (I19041)
버전 1.4
버전 1.4.0-alpha13
2025년 2월 26일
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
2025년 1월 15일
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에는 이 커밋이 포함되어 있습니다.
새로운 기능
- Android 15 관련 API를 사용하기 위해
compileSdk
를 35로 업그레이드했습니다. CameraX 라이브러리를 사용하는 앱도compileSdk
구성 설정을 업그레이드해야 합니다. (Ic80cd) - 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 강제해야 합니다.
-Xjspecify-annotations=strict
(Kotlin 컴파일러 버전 2.1.0부터 기본값임) (I7bcd7, b/326456246)
버전 1.4.0-alpha11
2024년 12월 11일
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)- Compose에서 재사용할 수 있도록
CameraViewfinder.ScaleType
가viewfinder-core
로 이동되었습니다. (I87ef1) - 지원 중단된
CameraViewfinder
클래스가 삭제되었습니다. 동일한 기능을 제공하는 새 API를 사용하세요. (I6e59a)
버전 1.4.0-alpha10
2024년 10월 30일
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
2024년 10월 2일
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
2024년 9월 4일
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-view
androidx.camera:camera-viewfinder-compose
->androidx.camera.viewfinder:viewfinder-compose
androidx.camera:camera-viewfinder-core
->androidx.camera.viewfinder:viewfinder-core
이 전환을 위해 코드를 변경할 필요는 없습니다. 이전 뷰파인더 Maven 좌표는 더 이상 업데이트되지 않습니다.
또한 CameraX와 함께 Compose를 사용하는 경우 이제 새로운 Compose 우선 라이브러리인 androidx.camera:camera-compose
를 알파 버전으로 사용할 수 있습니다. 이렇게 하면 CameraXViewfinder
컴포저블이 제공됩니다. 이는 PreviewView
가 뷰에서 작동하는 방식과 유사하게 CameraX의 SurfaceRequest
를 Compose에 적용하는 Compose 관용구 뷰파인더입니다.