相機觀景窗

  
獨立的可組合函式和以 View 為基礎的相機觀景窗

下表列出 androidx.camera-viewfinder 群組的所有構件。

構件 穩定版 候選版 Beta 版 Alpha 版
viewfinder-compose - - 1.5.0-beta01 1.4.0-alpha13
viewfinder-core - - 1.5.0-beta01 1.4.0-alpha13
viewfinder-view - - 1.5.0-beta01 1.4.0-alpha13
這個程式庫的上次更新日期:2025 年 5 月 7 日

宣告依附元件

如要為 camera-viewfinder 新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    // Use to implement camera viewfinders
    
    implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01"
    implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01"
    implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01"

}

Kotlin

dependencies {
    // Use to implement camera viewfinders
    implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01")
    implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01")
    implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01")


}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.5 版本

1.5.0-beta01 版

2025 年 5 月 7 日

發布 androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01。1.5.0-beta01 版包含這些修訂項目

  • 這是第一個官方 Beta 版,提供以 View 和 Compose 為基礎的觀景窗,可靈活搭配 Camera2 使用。如果您想找尋可與 CameraX 搭配使用的 View 或可組合項,請參閱 PreviewViewCameraXViewfinder

新功能

  • ContentScaleAlignment 現在可用於以 Compose 為基礎的 Viewfinder,以便在其容器中縮放及放置顯示的介面,類似於 androidx.compose.foundation.Image 的行為。(Ibcea3)

API 變更

  • TransformationInfo 現在已為所有引數提供預設值。這樣一來,您就能在沒有任何 TransformationInfo 的情況下建立 Viewfinder,且來源旋轉角度預設為 0,不會進行來源鏡射,也不會裁剪矩形。(I2b1b2)
  • 可組合項 Viewfinder 現在會採用結尾 lambda 來接收 Surface 工作階段,類似於 AndroidExternalSurface。提供的 lambda 會使用 ViewfinderInitScope 做為接收器,可安裝回呼來接收新的 Surface 工作階段。這些表面工作階段會在超出範圍時,自動釋放 Viewfinder 所持有的資源。(Ib2b0d)
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics 現已移除,並由等效的靜態 API 取代,可用於產生 TransformationInfo,產生結果與 populateFromCharacteristics 相同。這些靜態方法會新增至 Camera2TransformationInfo 類別。(Idc6af)。
  • ViewfinderSurfaceRequest 不再包含用於擷取介面的非同步 API。此時為不可變資料類型。用於擷取 Surface 的 API 現已移至取景器。(I30127)。
  • CameraViewfinder 已重新命名為 ViewfinderView,以便與 Viewfinder 可組合項的命名方式保持一致,並表示該可組合項可用於其他相機來源。(Id9e6b)。
  • viewfinder-view 中的類別已從 androidx.camera.viewfinder 套件移至 androidx.camera.viewfinder.view 子套件。(I6cb44)。
  • 我們已在以檢視畫面為基礎的 Viewfinder 中新增了新的 API,可設定來源旋轉、鏡像和裁剪矩形。這個 TransformationInfo 類別與以 Compose 為基礎的 Viewfinder 使用的類別相同。(I907c3)
  • 以檢視畫面為基礎的 Viewfinder 現在使用新的 ViewfinderSurfaceRequest API,不再在內部處理 Surface 回應。requestSurfaceSession() API 現在會傳回 ListenableFuture<ViewfinderSurfaceSession>,而非 ListenableFuture<Surface>ListenableFuture<ViewfinderSurfaceSession> 會傳回 AutoCloseable 類別,當關閉時,其行為與呼叫 ViewfinderSurfaceRequest.markSurfaceSafeToRelease() 的舊 API 相同。這樣一來,您就能更清楚地區分表面要求和表面回應的責任。(I19041)

1.4 版

1.4.0-alpha13 版本

2025 年 2 月 26 日

發布 androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13androidx.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-alpha12androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12。1.4.0-alpha12 版包含這些修訂項目

新功能

  • 已將 compileSdk 升級為 35,以便使用 Android 15 相關 API。使用 CameraX 程式庫的應用程式也必須升級 compileSdk 設定。(Ic80cd)。
  • 這個程式庫現在使用 JSpecify 空值註解,這是類型用途。Kotlin 開發人員應使用下列編譯器引數,確保正確使用方式:-Xjspecify-annotations=strict (這是 Kotlin 編譯器 2.1.0 版起的預設值)。(I7bcd7b/326456246)

1.4.0-alpha11 版本

2024 年 12 月 11 日

發布 androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11androidx.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 版本

2024 年 10 月 30 日

發布 androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10androidx.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-alpha09androidx.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-alpha08androidx.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 檢視器構件已移至專屬的程式庫群組。這項變更是為了改善 CameraX 程式庫的模組化和可維護性。

如果您先前依附 androidx.camera:camera-viewfinderandroidx.camera:camera-viewfinder-composeandroidx.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

您不需要變更程式碼即可完成這項轉換。舊版 Viewfinder Maven 座標將不再收到更新。

此外,如果您使用 Compose 搭配 CameraX,現在 Alpha 版中提供新的 Compose 優先程式庫:androidx.camera:camera-compose。這會提供 CameraXViewfinder 可組合項,這是一種 Compose 慣用語法觀景窗,可將 CameraX 的 SurfaceRequest 調整為 Compose,類似於 PreviewView 如何為 View 運作。