カメラのビューファインダー

  
カメラ用のスタンドアロンの Composable と View ベースのビューファインダー」

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 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.5

バージョン 1.5.0-beta03

2025 年 7 月 16 日

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03 がリリースされました。バージョン 1.5.0-beta03 には、これらの commit が含まれています。

バグの修正

  • Viewfinder(Compose ベースと View ベースの両方)のデフォルトの ImplementationMode が、EXTERNAL(パフォーマンス用)と EMBEDDED(古い API/癖のあるデバイスでの互換性用)の間でインテリジェントに選択するようになりました。この動作は、ViewfinderSurfaceRequest または XML 属性(View ベースの API)の明示的な設定でオーバーライドできます。(Iecd3a
  • API 29 以降で TextureView または SurfaceView を使用する場合、サーフェスの作成/破棄ライフサイクル全体で ViewfinderSurfaceSession を維持できるようにすることで、Surface セッションの管理を改善しました。(I112d9
  • Viewfinder では、コンポーザブルが破棄されたときに常にリリースするのではなく、セッションで使用されなくなったときにのみ、適切なタイミングで Surface がリリースされるようになりました。EXTERNALSurfaceView)の場合、この動作は現在 API 29 以上でのみ利用できます。EMBEDDEDTextureView)の場合、この動作はすべての API レベルで存在します。(I9a03f
  • Viewfinder は、API レベル 28 以下の EXTERNAL ビューファインダーが画面外に移動した場合や、Viewfinder(任意の ImplementationMode を含む)が moveableContentOf() の一部である場合など、サーフェスの置き換えを適切に処理するようになりました。(I79432
  • コンポーザブル Viewfinder が、Compose の Pager と正しく連携するようになりました。この変更により、AndroidViewonReset コールバックを実装してコンポーザブルを正常にリセットできるようになり、EMBEDDEDEXTERNAL の両方の実装がサポートされます。(I0d9be
  • Android 10/11 で、変換オペレーション(スケールや変換など)が早すぎるタイミングで適用されるため、EXTERNAL Viewfinder が引き伸ばされたり、正しく表示されなかったりする問題を修正します。システムは、レイアウト フェーズでこれらの変換を適用する前に Surface が作成されるのを待つようになり、正しい出力が保証されるようになりました。(Icc77c

バージョン 1.5.0-beta02

2025 年 6 月 4 日

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02 がリリースされました。バージョン 1.5.0-beta02 にはこれらの commit が含まれています。

バージョン 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 にはこれらの commit が含まれています。

  • これは、Camera2 で使用できるほど柔軟なビューベースとコンポーズ ベースのビューファインダーの最初の公式ベータ版リリースです。CameraX で使用する View またはコンポーザブルをお探しの場合は、PreviewViewCameraXViewfinder をご覧ください。

新機能

  • ContentScaleAlignment を、androidx.compose.foundation.Image の動作と同様に、Compose ベースのビューファインダーで使用して、表示されるサーフェスをコンテナ内でスケーリングして配置できるようになりました。(Ibcea3

API の変更

  • TransformationInfo にすべての引数のデフォルト値が設定されました。これにより、TransformationInfo なしでビューファインダーを作成できるようになります。この場合、デフォルトでソースの回転は 0、ソースのミラーリングはなし、切り抜き矩形はなしになります。(I2b1b2
  • コンポーザブル ビューファインダーが、AndroidExternalSurface と同様に、Surface セッションを受け取るための末尾のラムダを受け取るようになりました。提供されたラムダはレシーバとして ViewfinderInitScope を使用します。これにより、新しい Surface セッションを受け取るコールバックをインストールできます。これらのサーフェス セッションは、スコープ外になると、ビューファインダーが保持しているリソースを自動的に解放します。(Ib2b0d
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics は削除され、populateFromCharacteristics と同じ変換を行う TransformationInfo を生成するために使用できる同等の静的 API セットに置き換えられました。これらの静的メソッドは Camera2TransformationInfo クラスに追加されます。(Idc6af
  • ViewfinderSurfaceRequest には、サーフェスを取得するための非同期 API が含まれなくなりました。これは不変のデータ型になりました。Surface を取得するための API がビューファインダーに移動しました。(I30127
  • 命名を Viewfinder コンポーザブルの命名と一致させ、カメラソース以外にも使用できることを示すために、CameraViewfinder の名前を ViewfinderView に変更しました。(Id9e6b
  • viewfinder-view のクラスを androidx.camera.viewfinder パッケージから androidx.camera.viewfinder.view サブパッケージに移動しました。(I6cb44
  • ビューベースのビューファインダーに、ソースの回転、ミラーリング、切り抜き長方形を設定できる新しい API が追加されました。この TransformationInfo クラスは、Compose ベースの Viewfinder で使用されるクラスと同じです。(I907c3
  • ビューベースのビューファインダーは、新しい ViewfinderSurfaceRequest API を使用するようになり、Surface レスポンスを内部で処理しなくなりました。ListenableFuture<Surface> を返す代わりに、requestSurfaceSession() API は ListenableFuture<ViewfinderSurfaceSession> を返すようになりました。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 にはこれらの commit が含まれています。

バージョン 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 には、これらの commit が含まれています。

新機能

  • Android 15 関連の API を使用するために compileSdk を 35 にアップグレードしました。CameraX ライブラリを使用するアプリでは、compileSdk 構成設定もアップグレードする必要があります。(Ic80cd
  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。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 には、これらの commit が含まれています。

API の変更

  • viewfinder-core クラスは、所属するライブラリと一貫性のあるパッケージに移動されました。(I431c6
  • CameraViewfinder.ScaleTypeviewfinder-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 には、これらの commit が含まれています。

バージョン 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 には、これらの commit が含まれています。

バージョン 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 には、これらの commit が含まれています。

新機能

1.4.0-alpha08 への更新に伴い、CameraX Viewfinder アーティファクトが独自のライブラリ グループに移動しました。この変更は、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 座標は更新されなくなります。

また、CameraX で Compose を使用している場合は、新しい Compose ファーストのライブラリ androidx.camera:camera-compose がアルファ版で利用できるようになりました。これにより、CameraXViewfinder コンポーザブルが提供されます。これは、PreviewView がビューで機能するのと同様に、CameraX の SurfaceRequest を Compose に適応させる Compose イディオムのビューファインダーです。