This table lists all the artifacts in the androidx.camera-viewfinder group.
To add a dependency on camera-viewfinder, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01" }
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01") }
For more information about dependencies, see Add build dependencies.
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
March 11, 2026
androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01, and androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01 are released. Version 1.7.0-alpha01 contains these commits.
May 06, 2026
androidx.camera.viewfinder:viewfinder-compose:1.6.1, androidx.camera.viewfinder:viewfinder-core:1.6.1, and androidx.camera.viewfinder:viewfinder-view:1.6.1 are released. Version 1.6.1 contains these commits.
March 25, 2026
androidx.camera.viewfinder:viewfinder-compose:1.6.0, androidx.camera.viewfinder:viewfinder-core:1.6.0, and androidx.camera.viewfinder:viewfinder-view:1.6.0 are released. Version 1.6.0 contains these commits.
Important changes since 1.5.0:
ImplementationMode via the new ViewfinderDefaults.implementationMode public API. This is now used as the default for both ViewfinderView and the Viewfinder composable. (Ic3f52)February 25, 2026
androidx.camera.viewfinder:viewfinder-compose:1.6.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.6.0-rc01, and androidx.camera.viewfinder:viewfinder-view:1.6.0-rc01 are released. Version 1.6.0-rc01 contains these commits.
February 11, 2026
androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta02, and androidx.camera.viewfinder:viewfinder-view:1.6.0-beta02 are released. Version 1.6.0-beta02 contains these commits.
January 28, 2026
androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta01, and androidx.camera.viewfinder:viewfinder-view:1.6.0-beta01 are released. Version 1.6.0-beta01 contains these commits.
December 17, 2025
androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha02, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha02, and androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha02 are released. Version 1.6.0-alpha02 contains these commits.
October 22, 2025
androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01, and androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 are released. Version 1.6.0-alpha01 contains these commits.
API Changes
ImplementationMode via the new ViewfinderDefaults.implementationMode public API. This is now used as the default for both ViewfinderView and the Viewfinder composable. (Ic3f52)January 28, 2026
androidx.camera.viewfinder:viewfinder-compose:1.5.3, androidx.camera.viewfinder:viewfinder-core:1.5.3, and androidx.camera.viewfinder:viewfinder-view:1.5.3 are released. Version 1.5.3 contains these commits.
December 4, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.2, androidx.camera.viewfinder:viewfinder-core:1.5.2, and androidx.camera.viewfinder:viewfinder-view:1.5.2 are released. Version 1.5.2 contains these commits.
October 08, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1, and androidx.camera.viewfinder:viewfinder-view:1.5.1 are released. Version 1.5.1 contains these commits.
September 10, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0, and androidx.camera.viewfinder:viewfinder-view:1.5.0 are released. Version 1.5.0 contains these commits.
Important changes since 1.4.0:
This is the first stable release of the Camera Viewfinder library, providing robust, lifecycle-aware, and easy-to-use View and Compose-based APIs. These components are designed to serve as a camera viewfinder and can be integrated directly with Camera2.
This release also establishes the foundation for the new androidx.camera:camera-compose artifact, which introduces CameraXViewfinder, a Compose-idiomatic viewfinder that integrates seamlessly with CameraX SurfaceRequests, similar to how PreviewView works for View-based layouts. Some of the most important changes include:
androidx.camera:camera-viewfinder* dependencies should migrate to androidx.camera.viewfinder:viewfinder-*.CameraViewfinder to ViewfinderView to better reflect its versatility, reorganizing packages for clarity, and making ViewfinderSurfaceRequest an immutable data type for more predictable state management.Viewfinder API now supports ContentScale and Alignment for fine-grained control over how the camera stream is displayed within its container, mirroring the behavior of the standard androidx.compose.foundation.Image composable.ViewfinderSurfaceSession is now kept alive across configuration changes and lifecycle events on API 29+. This change is designed to reduce dropped frames and provide a smoother user experience.Viewfinder now defaults to an intelligent ImplementationMode that automatically selects the best underlying implementation. It prioritizes the high-performance SurfaceView (EXTERNAL mode) and gracefully falls back to the more compatible TextureView (EMBEDDED mode) on older API levels or devices with known compatibility issues. This behavior can still be overridden for full developer control.Bug Fixes
Viewfinder now works correctly within Compose's Pager and with movableContentOf(), ensuring the surface is properly reset and managed in complex UI scenarios. (I0d9be, I79432)SurfaceView-based Viewfinder could appear stretched when transformations were applied. (Icc77c)August 13, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01, and androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 are released. Version 1.5.0-rc01 contains these commits.
Bug Fixes
minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)July 16, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03, and androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03 are released. Version 1.5.0-beta03 contains these commits.
Bug Fixes
ImplementationMode for Viewfinder (both Compose and View-based) now intelligently selects between EXTERNAL (for performance) and EMBEDDED (for compatibility on older APIs/quirky devices). This behavior can still be overridden by explicit settings in ViewfinderSurfaceRequest or XML attributes (on the View-based API). (Iecd3a)ViewfinderSurfaceSession to be kept alive across surface create/destroy lifecycles when using TextureView or SurfaceView on API 29+. (I112d9)Viewfinder now ensures Surfaces are released at the proper time, only when no longer in use by the session, rather than always releasing when the Composable is disposed. For EXTERNAL (SurfaceView) this behavior is currently only available on API 29+. For EMBEDDED (TextureView), this behavior is present on all API levels. (I9a03f)Viewfinder now properly handles surface replacement in scenarios such as when an EXTERNAL viewfinder on API level 28 or lower moves off screen or if a Viewfinder (with any ImplementationMode) is part of moveableContentOf(). (I79432)Viewfinder now works correctly with Compose's Pager. This change ensures that the Composable can be successfully reset by implementing the onReset callback of AndroidView, supporting both EMBEDDED and EXTERNAL implementations. (I0d9be)EXTERNAL Viewfinder could appear stretched or incorrect due to transformation operations (like scale or translate) being applied too early. The system now waits for the Surface to be created before applying these transformations in the layout phase, ensuring correct output. (Icc77c)June 4, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02, and androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02 are released. Version 1.5.0-beta02 contains these commits.
May 7, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01, and androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01 are released. Version 1.5.0-beta01 contains these commits.
PreviewView and CameraXViewfinder.New Features
ContentScale and Alignment can now be used in the compose-based viewfinder to scale and place the displayed surface within its container, similar to how androidx.compose.foundation.Image behaves. (Ibcea3)API Changes
TransformationInfo now has default values for all args. This will allow Viewfinders to be created without any TransformationInfo, which will default to a source rotation of 0, no source mirroring, and no crop rect. (I2b1b2)AndroidExternalSurface. The provided lambda uses ViewfinderInitScope as a receiver, which allows installing a callback to receive new Surface sessions. These surface sessions automatically release resources held by the Viewfinder when they go out of scope. (Ib2b0d)ViewfinderSurfaceRequest.Builder.populateFromCharacteristics has now been removed and is now replaced with an equivalent set of static APIs that can be used to generate TransformationInfo which will produce the same transformation as populateFromCharacteristics. These static methods are added to the Camera2TransformationInfo class. (Idc6af)ViewfinderSurfaceRequest no longer includes async APIs for retrieving the surface. It is now an immutable data type. APIs for retrieving the Surface are now moved to the viewfinder. (I30127)CameraViewfinder has been renamed to ViewfinderView so that the naming aligns with the naming of the Viewfinder composable and to indicate that it can be used with more than just camera sources. (Id9e6b)viewfinder-view have been moved to the androidx.camera.viewfinder.view subpackage from the androidx.camera.viewfinder package. (I6cb44)TransformationInfo class is the same class used by the compose-based Viewfinder. (I907c3)ViewfinderSurfaceRequest APIs which no longer internally handle the Surface response. Instead of returning ListenableFuture<Surface>, the requestSurfaceSession() APIs now return ListenableFuture<ViewfinderSurfaceSession> which returns an AutoCloseable class that when closed behaves the same way as calling the old API of ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). This provides a clearer separation of responsibilities between the surface request and surface response. (I19041)February 26, 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13 are released. Version 1.4.0-alpha13 contains these commits.
January 15, 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12 are released. Version 1.4.0-alpha12 contains these commits.
New Features
compileSdk as 35 for using Android 15 related API. Apps using CameraX libraries will also need to upgrade their compileSdk config setting. (Ic80cd)-Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler). (I7bcd7, b/326456246)December 11, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11 are released. Version 1.4.0-alpha11 contains these commits.
API Changes
viewfinder-core classes have been moved into packages that are consistent with the library they belong to. (I431c6)CameraViewfinder.ScaleType has been moved to viewfinder-core so it can be reused with compose (I87ef1)CameraViewfinder classes are removed. Please use the new APIs which provide equivalent functionality. (I6e59a)October 30, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10 are released. Version 1.4.0-alpha10 contains these commits.
October 2, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09 are released. Version 1.4.0-alpha09 contains these commits.
September 4, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08, and androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08 are released. Version 1.4.0-alpha08 contains these commits.
New Features
With the update to 1.4.0-alpha08, the CameraX Viewfinder artifact has been moved to its own library group. This change is necessary to improve the modularity and maintainability of the CameraX library.
If you were previously depending on androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose or androidx.camera:camera-viewfinder-core, you will need to transition your dependencies to the following:
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-coreNo code changes should be needed to make this transition. The old Viewfinder maven coordinates will no longer receive updates.
Additionally, if you are using Compose with CameraX, a new Compose-first library is now available in alpha: androidx.camera:camera-compose. This provides the CameraXViewfinder composable, which is a compose-idiomatic Viewfinder that adapts CameraX’s SurfaceRequest to Compose, similar to how PreviewView works for views.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2026-05-06 UTC.