카메라 뷰파인더

  
카메라용 독립형 컴포저블 및 뷰 기반 뷰파인더'

이 표에는 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
이 라이브러리는 2025년 7월 16일에 최종 업데이트되었습니다.

종속 항목 선언

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-beta03androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03이 출시되었습니다. 버전 1.5.0-beta03에는 이러한 커밋이 포함되어 있습니다.

버그 수정

  • 이제 Viewfinder (Compose 및 뷰 기반 모두)의 기본 ImplementationModeEXTERNAL (성능용)와 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와 올바르게 작동합니다. 이 변경사항은 AndroidViewonReset 콜백을 구현하여 컴포저블을 성공적으로 재설정할 수 있도록 하며 EMBEDDEDEXTERNAL 구현을 모두 지원합니다. (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-beta02androidx.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-beta01androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01이 출시되었습니다. 버전 1.5.0-beta01에는 이 커밋이 포함되어 있습니다.

  • 이 버전은 Camera2와 함께 사용할 수 있을 만큼 유연한 뷰 기반 및 Compose 기반 뷰파인더의 첫 번째 공식 베타 출시입니다. CameraX와 함께 사용할 뷰나 컴포저블을 찾고 있다면 PreviewViewCameraXViewfinder를 참고하세요.

새로운 기능

  • 이제 ContentScaleAlignment를 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-alpha13androidx.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-alpha12androidx.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-alpha11androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11이 출시되었습니다. 버전 1.4.0-alpha11에는 이 커밋이 포함되어 있습니다.

API 변경사항

  • viewfinder-core 클래스가 속한 라이브러리와 일치하는 패키지로 이동했습니다. (I431c6)
  • Compose에서 재사용할 수 있도록 CameraViewfinder.ScaleTypeviewfinder-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-alpha10androidx.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-alpha09androidx.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-alpha08androidx.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 관용구 뷰파인더입니다.