カメラ ビューファインダー
androidx.camera-viewfinder グループ内のすべてのアーティファクトのリストを以下に示します。
| アーティファクト | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| viewfinder-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| viewfinder-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| viewfinder-view | 1.5.1 | - | - | 1.6.0-alpha01 |
依存関係の宣言
camera-viewfinder への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.6
バージョン 1.6.0-alpha01
2025 年 10 月 22 日
androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01、androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01、androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 がリリースされました。バージョン 1.6.0-alpha01 にはこれらの commit が含まれています。
API の変更
- 新しい
ViewfinderDefaults.implementationMode公開 API を介して、デフォルトのビューファインダーImplementationModeを公開しました。これは、ViewfinderViewとViewfinderコンポーザブルの両方のデフォルトとして使用されるようになりました。(Ic3f52)
バージョン 1.5
バージョン 1.5.1
2025 年 10 月 8 日
androidx.camera.viewfinder:viewfinder-compose:1.5.1、androidx.camera.viewfinder:viewfinder-core:1.5.1、androidx.camera.viewfinder:viewfinder-view:1.5.1 がリリースされました。バージョン 1.5.1 にはこれらの commit が含まれています。
バージョン 1.5.0
2025 年 9 月 10 日
androidx.camera.viewfinder:viewfinder-compose:1.5.0、androidx.camera.viewfinder:viewfinder-core:1.5.0、androidx.camera.viewfinder:viewfinder-view:1.5.0 がリリースされました。バージョン 1.5.0 にはこれらの commit が含まれています。
1.4.0 以降の重要な変更:
これは Camera Viewfinder ライブラリの最初の安定版リリースであり、堅牢でライフサイクル対応の使いやすい View ベースと Compose ベースの API を提供します。これらのコンポーネントはカメラのビューファインダーとして機能するように設計されており、Camera2 と直接統合できます。
このリリースでは、新しい androidx.camera:camera-compose アーティファクトの基盤も確立されます。このアーティファクトでは、CameraXViewfinder が導入されます。これは、View ベースのレイアウトで PreviewView が機能するのと同様に、CameraX SurfaceRequest とシームレスに統合される Compose イディオムのビューファインダーです。主な変更点は次のとおりです。
- アーティファクトの再配置: モジュール性を向上させるため、Viewfinder アーティファクトが独自のライブラリ グループに移動しました。以前に
androidx.camera:camera-viewfinder*依存関係を使用していたデベロッパーは、androidx.camera.viewfinder:viewfinder-*に移行する必要があります。 - API の安定化と改良: この安定版リリースに向けて API サーフェスが改良されました。これには、汎用性をより適切に反映するために
CameraViewfinderの名前をViewfinderViewに変更すること、わかりやすくするためにパッケージを再編成すること、より予測可能な状態管理のためにViewfinderSurfaceRequestを不変のデータ型にすることが含まれます。 - Compose API の更新: Compose
ViewfinderAPI がContentScaleとAlignmentをサポートするようになり、標準のandroidx.compose.foundation.Imageコンポーザブルの動作を反映して、カメラ ストリームがコンテナ内に表示される方法をきめ細かく制御できるようになりました。 - Surface ライフサイクル管理: API 29 以降で、構成の変更やライフサイクル イベント全体で
ViewfinderSurfaceSessionが維持されるようになりました。この変更は、フレームのドロップを減らし、よりスムーズなユーザー エクスペリエンスを提供することを目的としています。 - 実装モードのデフォルト:
ViewfinderのデフォルトがインテリジェントなImplementationModeになり、最適な基盤となる実装が自動的に選択されるようになりました。高性能のSurfaceView(EXTERNALモード)を優先し、古い API レベルや互換性の問題が確認されているデバイスでは、互換性の高いTextureView(EMBEDDEDモード)に適切にフォールバックします。この動作は、デベロッパーが完全に制御できるようにオーバーライドできます。
バグの修正
- コンポーザブル
Viewfinderが Compose のPager内およびmovableContentOf()で正しく動作するようになり、複雑な UI シナリオでサーフェスが適切にリセットされ、管理されるようになりました。(I0d9be、 I79432) - 変換が適用されたときに
SurfaceViewベースのViewfinderが引き伸ばされて表示される Android 10 と 11 の問題を修正しました。(Icc77c)
バージョン 1.5.0-rc01
2025 年 8 月 13 日
androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01、androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01、androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 がリリースされました。バージョン 1.5.0-rc01 にはこれらの commit が含まれています。
バグの修正
- デフォルトの
minSdkを API 21 から API 23 に移行(Ibdfca、b/380448311、b/435705964、b/435705223)
バージョン 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 には、これらの commit が含まれています。
バグの修正
Viewfinder(Compose ベースと View ベースの両方)のデフォルトのImplementationModeが、EXTERNAL(パフォーマンス用)とEMBEDDED(古い API/癖のあるデバイスでの互換性用)をインテリジェントに選択するようになりました。この動作は、ViewfinderSurfaceRequestまたは XML 属性(View ベースの API)の明示的な設定でオーバーライドできます。(Iecd3a)- API 29 以降で TextureView または SurfaceView を使用する場合、サーフェスの作成/破棄ライフサイクル全体で
ViewfinderSurfaceSessionを維持できるようにすることで、Surface セッション管理を改善しました。(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) - Android 10/11 で、変換オペレーション(スケールや変換など)が早すぎるために
EXTERNALViewfinderが引き伸ばされたり、正しく表示されなかったりする問題を修正します。システムは、レイアウト フェーズでこれらの変換を適用する前に 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 にはこれらの commit が含まれています。
バージョン 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 にはこれらの commit が含まれています。
- これは、Camera2 で使用できるほど柔軟な、ビューベースとコンポーズベースのビューファインダーの最初の公式ベータ版リリースです。CameraX で使用する View またはコンポーザブルをお探しの場合は、
PreviewViewとCameraXViewfinderをご覧ください。
新機能
ContentScaleとAlignmentを、Compose ベースのビューファインダーで使用して、androidx.compose.foundation.Imageの動作と同様に、表示されたサーフェスをコンテナ内でスケーリングして配置できるようになりました。(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) - ビューベースのビューファインダーは、新しい
ViewfinderSurfaceRequestAPI を使用するようになりました。この 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-alpha13、androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13、androidx.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-alpha12、androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12、androidx.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 以降ではデフォルトです)。(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 には、これらの commit が含まれています。
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-alpha10、androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10、androidx.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-alpha09、androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09、androidx.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-alpha08、androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08、androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08 がリリースされました。バージョン 1.4.0-alpha08 には、これらの commit が含まれています。
新機能
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-viewandroidx.camera:camera-viewfinder-compose->androidx.camera.viewfinder:viewfinder-composeandroidx.camera:camera-viewfinder-core->androidx.camera.viewfinder:viewfinder-core
この移行を行うためにコードを変更する必要はありません。古い Viewfinder の Maven 座標は更新されなくなります。
また、CameraX で Compose を使用している場合は、新しい Compose ファーストのライブラリ androidx.camera:camera-compose がアルファ版で利用できるようになりました。これにより、CameraXViewfinder コンポーザブルが提供されます。これは、PreviewView がビューで機能するのと同様に、CameraX の SurfaceRequest を Compose に適応させる Compose イディオムのビューファインダーです。