видоискатель камеры

Автономный, настраиваемый и видоискатель для камеры.

В этой таблице перечислены все артефакты, входящие в группу androidx.camera-viewfinder .

Артефакт Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
композиция видоискателя 1.5.2 - - 1.6.0-alpha02
ядро видоискателя 1.5.2 - - 1.6.0-alpha02
видоискатель 1.5.2 - - 1.6.0-alpha02
Последнее обновление этой библиотеки: 17 декабря 2025 г.

Объявление зависимостей

Чтобы добавить зависимость от camera-viewfinder, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

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

}

Котлин

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


}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.6

Версия 1.6.0-alpha02

17 декабря 2025 г.

Выпущены androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha02 , androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha02 и androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha02 . Версия 1.6.0-alpha02 содержит следующие коммиты .

Версия 1.6.0-alpha01

22 октября 2025 г.

Выпущены 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 содержит следующие коммиты .

Изменения в API

  • Добавлена ​​возможность ImplementationMode по умолчанию для Viewfinder через новый публичный API ViewfinderDefaults.implementationMode . Теперь он используется в качестве значения по умолчанию как для ViewfinderView , так и для составного элемента Viewfinder . ( Ic3f52 )

Версия 1.5

Версия 1.5.2

4 декабря 2025 г.

Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.2 , androidx.camera.viewfinder:viewfinder-core:1.5.2 и androidx.camera.viewfinder:viewfinder-view:1.5.2 . Версия 1.5.2 содержит следующие коммиты .

Версия 1.5.1

8 октября 2025 г.

Выпущены 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 содержит следующие коммиты .

Версия 1.5.0

10 сентября 2025 г.

Выпущены 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 содержит следующие изменения .

Важные изменения по сравнению с версией 1.4.0:

Это первый стабильный релиз библиотеки Camera Viewfinder, предоставляющей надежные, учитывающие жизненный цикл и простые в использовании API на основе View и Compose. Эти компоненты предназначены для использования в качестве видоискателя камеры и могут быть интегрированы непосредственно с Camera2.

В этом релизе также заложена основа для нового артефакта androidx.camera:camera-compose , который представляет CameraXViewfinder — идиоматический видоискатель Compose, который легко интегрируется с CameraX SurfaceRequest , аналогично тому, как работает PreviewView для макетов на основе View. К числу наиболее важных изменений относятся:

  • Перемещение артефактов: Для повышения модульности артефакты Viewfinder были перемещены в отдельную группу библиотек. Разработчикам, ранее использовавшим зависимости androidx.camera:camera-viewfinder* , следует перейти на androidx.camera.viewfinder:viewfinder-* .
  • Стабилизация и доработка API: В этом стабильном релизе API был значительно улучшен. Это включает в себя переименование CameraViewfinder в ViewfinderView для лучшего отражения его универсальности, реорганизацию пакетов для большей ясности и присвоение ViewfinderSurfaceRequest статуса неизменяемого типа данных для более предсказуемого управления состоянием.
  • Обновления API Compose: API Viewfinder в Compose теперь поддерживает ContentScale и Alignment для точного управления отображением видеопотока с камеры внутри контейнера, что соответствует поведению стандартного объекта androidx.compose.foundation.Image .
  • Управление жизненным циклом поверхности: ViewfinderSurfaceSession теперь остается активным при изменении конфигурации и событиях жизненного цикла в API 29+. Это изменение призвано уменьшить количество пропущенных кадров и обеспечить более плавную работу пользователя.
  • Настройки режима реализации по умолчанию: Теперь Viewfinder по умолчанию использует интеллектуальный ImplementationMode , который автоматически выбирает наилучшую базовую реализацию. Он отдает приоритет высокопроизводительному SurfaceView (режим EXTERNAL ) и корректно переключается на более совместимый TextureView (режим EMBEDDED ) на более старых уровнях API или устройствах с известными проблемами совместимости. Это поведение по-прежнему можно изменить для полного контроля со стороны разработчика.

Исправлены ошибки

  • Теперь компонент Viewfinder корректно работает в Pager компонента Compose и с movableContentOf() , обеспечивая правильный сброс и управление поверхностью в сложных сценариях пользовательского интерфейса. ( I0d9be , I79432 )
  • Исправлена ​​ошибка в Android 10 и 11, из-за которой Viewfinder на основе SurfaceView мог выглядеть растянутым при применении преобразований. ( Icc77c )

Версия 1.5.0-rc01

13 августа 2025 г.

Выпущены коммиты 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 содержит следующие коммиты .

Исправлены ошибки

Версия 1.5.0-beta03

16 июля 2025 г.

Выпущены 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 содержит следующие коммиты .

Исправлены ошибки

  • В настоящее время в Viewfinder (как в режиме Compose, так и в режиме View-based) по умолчанию автоматически выбирается ImplementationMode между EXTERNAL (для повышения производительности) и EMBEDDED (для совместимости со старыми API/нестандартными устройствами). Это поведение по-прежнему можно переопределить с помощью явных настроек в ViewfinderSurfaceRequest или XML-атрибутах (в API View-based). ( Iecd3a )
  • Улучшено управление сессиями поверхностей за счет сохранения активности ViewfinderSurfaceSession на протяжении всего жизненного цикла создания/уничтожения поверхности при использовании TextureView или SurfaceView в API 29+. ( I112d9 )
  • Теперь Viewfinder гарантирует освобождение поверхностей в нужное время, только когда они больше не используются сессией, а не всегда при удалении объекта Composable. Для EXTERNAL ( SurfaceView ) это поведение в настоящее время доступно только в API 29+. Для EMBEDDED ( TextureView ) это поведение присутствует на всех уровнях API. ( I9a03f )
  • Теперь Viewfinder корректно обрабатывает замену поверхности в таких сценариях, как перемещение EXTERNAL видоискателя на уровне API 28 или ниже за пределы экрана или если Viewfinder (с любым ImplementationMode ) является частью moveableContentOf() . ( I79432 )
  • Теперь Composable Viewfinder корректно работает с Pager из Compose. Это изменение гарантирует успешный сброс Composable путем реализации коллбэка onReset из AndroidView , поддерживающего как EMBEDDED , так и EXTERNAL реализации. ( I0d9be )
  • Исправлена ​​ошибка в Android 10/11, из-за которой EXTERNAL Viewfinder мог отображаться растянутым или некорректным из-за слишком раннего применения операций преобразования (таких как масштабирование или перемещение). Теперь система ожидает создания поверхности, прежде чем применять эти преобразования на этапе компоновки, обеспечивая корректный вывод. ( Icc77c )

Версия 1.5.0-beta02

4 июня 2025 г.

Выпущены 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 содержит следующие коммиты .

Версия 1.5.0-beta01

7 мая 2025 г.

Выпущены 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 содержит следующие коммиты .

  • Это первый официальный бета-релиз видоискателей на основе представлений и композиций, достаточно гибких для использования с Camera2. Если вам нужен вид или композиция для использования с CameraX, см. PreviewView и CameraXViewfinder .

Новые функции

  • Теперь в Viewfinder, созданном с помощью Compose, можно использовать ContentScale и Alignment для масштабирования и размещения отображаемой поверхности внутри контейнера, аналогично тому, как это делает androidx.compose.foundation.Image . ( IBCEA3 )

Изменения в API

  • Теперь для всех аргументов TransformationInfo установлены значения по умолчанию. Это позволит создавать видоискатели без параметра TransformationInfo , при этом по умолчанию будет установлено вращение источника на 0, зеркальное отображение источника и область обрезки не будут отображаться. ( I2b1b2 )
  • Теперь Composable Viewfinder принимает в конце лямбда-функцию для получения сессии Surface, аналогично AndroidExternalSurface . Предоставленная лямбда-функция использует ViewfinderInitScope в качестве приемника, что позволяет установить функцию обратного вызова для получения новых сессий Surface. Эти сессии Surface автоматически освобождают ресурсы, удерживаемые Viewfinder, когда они выходят из области видимости. ( Ib2b0d )
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics был удален и заменен эквивалентным набором статических API, которые можно использовать для генерации TransformationInfo , обеспечивающей ту же трансформацию, что и populateFromCharacteristics . Эти статические методы добавлены в класс Camera2TransformationInfo . ( Idc6af )
  • ViewfinderSurfaceRequest больше не включает асинхронные API для получения поверхности. Теперь это неизменяемый тип данных. API для получения поверхности теперь перенесены в видоискатель. ( I30127 )
  • CameraViewfinder был переименован в ViewfinderView , чтобы привести название в соответствие с названием компонента Viewfinder и указать на возможность его использования не только с источниками изображения с камеры. ( Id9e6b )
  • Классы из viewfinder-view были перемещены из пакета androidx.camera.viewfinder.view в подпакет androidx.camera.viewfinder . ( I6cb44 )
  • В Viewfinder, управляемый через представление, добавлены новые API, позволяющие задавать поворот источника, зеркальное отображение и прямоугольник обрезки. Этот класс TransformationInfo — тот же класс, который используется в Viewfinder, управляемом через композицию. ( I907c3 )
  • Теперь Viewfinder, управляемый видом, использует новые API ViewfinderSurfaceRequest , которые больше не обрабатывают ответ от поверхности внутри себя. Вместо возврата ListenableFuture<Surface> , API requestSurfaceSession() теперь возвращают ListenableFuture<ViewfinderSurfaceSession> , который возвращает класс AutoCloseable , который при закрытии ведет себя так же, как вызов старого API ViewfinderSurfaceRequest.markSurfaceSafeToRelease() . Это обеспечивает более четкое разделение обязанностей между запросом к поверхности и ответом от поверхности. ( I19041 )

Версия 1.4

Версия 1.4.0-alpha13

26 февраля 2025 г.

Выпущены 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 содержит следующие коммиты .

Версия 1.4.0-alpha12

15 января 2025 г.

Выпущены 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 содержит следующие коммиты .

Новые функции

  • Обновлена ​​версия compileSdk до 35 для использования API, связанных с Android 15. Приложениям, использующим библиотеки CameraX, также потребуется обновить настройки конфигурации compileSdk . ( Ic80cd )
  • В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I7bcd7 , b/326456246 )

Версия 1.4.0-alpha11

11 декабря 2024 г.

Выпущены 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 содержит следующие коммиты .

Изменения в API

  • viewfinder-core были перемещены в пакеты, соответствующие библиотеке, к которой они принадлежат. ( I431c6 )
  • CameraViewfinder.ScaleType перемещен в viewfinder-core , чтобы его можно было повторно использовать с compose ( I87ef1 ).
  • Устаревшие классы CameraViewfinder удалены. Пожалуйста, используйте новые API, предоставляющие эквивалентную функциональность. ( I6e59a )

Версия 1.4.0-alpha10

30 октября 2024 г.

Выпущены 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 содержит следующие коммиты .

Версия 1.4.0-alpha09

2 октября 2024 г.

Выпущены 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 содержит следующие коммиты .

Версия 1.4.0-alpha08

4 сентября 2024 г.

Выпущены коммиты 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 содержит следующие коммиты .

Новые функции

В обновлении до версии 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

Для осуществления этого перехода не потребуется никаких изменений в коде. Старые координаты Viewfinder Maven больше не будут обновляться.

Кроме того, если вы используете Compose с CameraX, теперь доступна новая библиотека, ориентированная на Compose, в альфа-версии: androidx.camera:camera-compose . Она предоставляет компонент CameraXViewfinder , который представляет собой Viewfinder, идиоматический для Compose, адаптирующий SurfaceRequest из CameraX к Compose, аналогично тому, как работает PreviewView для представлений.